1. 访问权限解释
类在设计时,可以把属性和行为放在不同的权限下,加以控制
1.1 三种访问权限
public
公共权限;类内可以访问 类外可以访问protected
保护权限;类内可以访问 ;类外不可以访问private
私有权限;类内可以访问 类外不可以访问
2. 代码示例
2.1 主程序
#include<iostream>
using namespace std;
//定义一个person类
class person
{
//公共属性
public:
string name;
//保护权限
protected:
int num;
//私有属性
private:
int password;
public: //如果为private或protected则主函数里不能调用这个函数
void student_info()
{
name = "lily";
num = 2021411;
password = 123456;
}
};
//主函数
int main()
{
person s;
s.name = "kangkang";
//s.num = 123456; //因为是保护权限所以不可以赋值
//s.password = 2021411; //因为是私有权限所以不可以赋值
s.student_info();
//cout << "student name: " << s.name << "student id" << s.num << "passwd" << s.password << endl;
cout << "student name: " << s.name << endl;
// return 0当主函数正常结束时,得到的函数值为0,当执行main函数过程中出现异常或错误时,函数值为一个非0的整数。程序员可以利用操作指令检查main函数的返回值,从而判断main函数已正常执行,并据此决定以后的操作
return 0;
}
2.2 程序运行结果
student name: lily
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
2.3 测试
测试访问private
或protected
的变量
2.3.1 测试程序
//主函数
int main()
{
person s;
s.name = "kangkang";
//因为是保护权限所以不可以赋值
s.num = 123456;
//因为是私有权限所以不可以赋值
s.password = 2021411;
s.student_info();
//因为是保护权限所以不可以访问;因为是私有权限所以不可以访问
cout << "student name: " << s.name << "student id" << s.num << "passwd" << s.password << endl;
//
return 0;
2.3.2 运行结果分析
//output
person::num' is protected within this context|
person::password' is private within this context|
- 从上面的报错可以看到
private
或protected
的变量无法被赋值和调用
3. 总结
- 在主函数里面,类型为
private
或protected
变量无法被赋值和调用