北大 C++ 2.4 类成员的可访问范围
来源:互联网 发布:sql实训报告 编辑:程序博客网 时间:2024/05/12 03:11
类成员的可访问范围
private 指定私有成员,只能在成员函数内被访问
public 指定公有成员,可以再任何地方被访问
protected 指定保护成员,我们在讲继承的时候再来讲。
三种关键字出现的次数和先后顺序都没有任何限制。
class className{
private:
私有属性和函数
public:
公有属性和函数
protected:
保护属性和函数
};
缺省为私有成员
class Man {
int nAge;
char szName[20];
public:
voidSetName(char *Name){
strcpy(szName,Name);
}
};
类的成员函数内部,可以访问:
当前对象的全部属性,函数
同类其他对象的全部属性,函数。 暂时不懂,先放在这里好了。
累的成员函数以外的地方,
只能访问该类对象的公有成员
class CEmployee {
private:
charszName[30];
public:
int salary;
void setName(char *Name);
voidgetName(cahr *Name);
voidaverageSalary(Cemployee e1,Cemployee e2);
};
void CEmployee::setName(char*Name){
strcpy(szName,name);// OK
}
void CEmployee::getName(char*name){
strcpy(name,szName);//OK
}
void CEmployee::averageSalary(CEmployeee1,CEmployee e2){
salary = (e1.salary+e2.salary)/2;
}
int main()
{
CEmployee e;
strcpy(e.szName,”Tom123456789”); //compile error
e.setName(“Tom”); //ok
e.salary = 5000; //ok
return 0;
}
设置私有成员的目的:
强制对成员变量的访问一定要通过成员函数进行
设置私有成员的机制---隐藏
这样做的好处:
1. 让我们的程序少出错
2. 容易修改
比如假设我们有一个程序需要从电脑上迁移到手机上,但是我们的szName现在变成了只有szName[5]
1)如果szName不是私有,则需要修改全部:
strcpy(man1.szName,”Tom123456789”);要把所有包含szName这样的语句的地方找到然后修改。
2)但是如果szName变成私有,所有对szName的访问都是通过成员函数进行的,那么我们只要:
man1.setName(“Tom123456789”);
- 北大 C++ 2.4 类成员的可访问范围
- C++ 类成员的可访问范围
- [C#] 成员的可访问性
- C++学习:类成员的访问范围
- 访问修饰符的可访问范围
- C++类中成员变量和函数的访问范围
- 类成员的访问修饰符和可访问性
- 类中私有数据成员的可访问性
- 12-使类和成员的可访问能力最小化
- 最小化类及其成员的可访问性
- 使类和成员的可访问性最小化
- Effective9- 使类和成员的可访问性最小化
- 使类和成员的可访问性最小化
- 使类和成员的可访问性最小化
- effective--使类和成员的可访问性最小化
- 使类和成员的可访问性最小化
- 使类和成员的可访问性最小化。
- 类成员的访问控制(C++)
- HDU1530-最大团
- 15.Java 基础
- 324. Wiggle Sort II
- JavaSE_35th_增强的for循环
- Android EditText 防止软键盘遮挡
- 北大 C++ 2.4 类成员的可访问范围
- Java 中的反射机制
- 在一个类中监听另一个类中变量改变
- Easyui combobox下拉项过长的处理
- svn: Number is larger than maximum
- 简述CPU 内存 硬盘 指令之间的关系
- linux系统硬盘分区
- #402 (Div. 2)A. Pupils Redistribution
- Android 两行代码实现换肤 从appcompat-v7原理出发