北大 C++ 2.4 类成员的可访问范围
2017-02-26 18:56
239 查看
类成员的可访问范围
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
a6e5
(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”);
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
a6e5
(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++学习:类成员的访问范围
- C++中派生类访问基类protected成员的范围
- C++ 类成员的可访问范围
- C++ 封装不是万能的 private 数据成员的值可以在类外被访问
- C++中的静态成员函数不能访问非静态成员
- c++ 类成员的访问权限priavte, protected, public
- C++中 public protected private 类成员的访问
- C++中静态成员函数访问非静态成员变量
- C++成员访问控制,以及C++继承方式对成员访问控制的影响
- C++中static成员函数访问非static成员变量
- C++中巧用#define访问类的私有成员
- C++中静态成员函数访问非静态成员变量
- C++中访问类的私有数据成员的第三种方法
- C++中派生类对基类成员的三种访问规则
- C++中子类对父类成员的访问
- C++ protected成员访问权限
- C++中巧用#define访问类的私有成员
- c++与Java中继承关系对成员访问权限的影响之比较
- C++: 静态成员函数不能访问非静态成员的道理
- C/C++ 中访问结构体成员的方法