·关键字--类成员可被访问的范围
·private:指定私有成员,只能在成员函数内被访问
·public:指定公有成员,可以在任何地方被访问
·protected:指定保护成员
·当前对象的全部属性,函数
·同类其他对象的全部属性,函数
·类的成员函数以外的地方
·强制对成员变量的访问一定要通过成员函数进行
·设置私有成员的机制--隐藏
szName->char szName[5]
·如果 szName 不是私有,需要修改全部
strcpy(man1.szName, "Tom123456789");
·如果将szName变为私有,
所有对szName的访问都是通过成员函数来进行
·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");
感谢北大!!