类成员的可访问范围

·关键字--类成员可被访问的范围
·private:指定私有成员,只能在成员函数内被访问
·public:指定公有成员,可以在任何地方被访问
·protected:指定保护成员

·三种关键字出现的次数和先后次序都没有限制


·定义一个类

class className{
	private:
		私有属性和函数
	public:
		公有属性和函数
	protected:
		保护属性和函数
};

·缺省为私有成员

class Man{
	int nAge;//私有成员
	int szName[20];//私有成员
	public:
		void SetName(char *Name){
			strcopy(szName, Name);
		}	
};
·类的成员函数内部,可以访问:
·当前对象的全部属性,函数
·同类其他对象的全部属性,函数
·类的成员函数以外的地方

·只能够访问该类对象的公有成员

class CEmployee{
	private:
		char szName[30];
	public:
		int salary;
		void setName(char *name);
		void getName(char *name);
		void avergeSalary(CEmployee e1, CEmployee e2);
};
void CEmployee::setName(char *name){
	strcpy(szName, name);
}
void CEmployee::getName(char *name){
	strcpy(name, szName);
}
void CEmployee::avergeSalary(CEmployee e1, CEmployee e2){
	salary = (e1.salary + e2.salary) / 2;
}
int main(){
	CEmployee e;
	strcpy(e.szName,"Tom123456789");//编译错,不能访问私有成员
	e.setName("Tom");
	e.salary = 5000;
	return 0;
}
·设置私有成员的目的
·强制对成员变量的访问一定要通过成员函数进行
·设置私有成员的机制--隐藏


szName->char szName[5]
·如果 szName 不是私有,需要修改全部
strcpy(man1.szName, "Tom123456789");
·如果将szName变为私有,
所有对szName的访问都是通过成员函数来进行

man1,setName("Tom1");


感谢北大!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值