封装练习,设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示姓名和学号。
#include <iostream> #include <string> using namespace std; class Student { public: // 类中的属性和行为,我们统一称为 成员 string m_name; int m_Id; void showStudent() { cout << "Name:" << m_name << endl << "Id:" << m_Id << endl; } void setName(string name) { m_name = name; } void setId(int id) { m_Id = id; } }; int main() { Student stu1,stu2; stu1.m_Id = 11; stu1.m_name = "ElevaHe"; stu1.showStudent(); stu2.setId(2); stu2.setName("ZhangMaZi"); stu2.showStudent(); return 0; }
封装的意义二:
类在设计时,可以把属性和行为放在不同的权限下,加以控制。
权限有三种:
1.public 公共权限 类内可访问,类外可访问
2.protected 保护权限 类内可访问,类外不可访问,儿子可以访问父亲中的保护内容
3.private 私有权限 类内可访问,类外不可访问,儿子不可以访问父亲的隐私内容
#include <iostream> using namespace std; class Person { public: string m_Name; protected: string m_Car; private: int m_password; public: void func() { m_Name = "LUOXIANG"; m_Car = "BYD"; m_password = 123; } }; int main() { Person p1; p1.m_Name = "LISI"; // p1.m_Car = "U8"; // p1.m_password = 321; 成员 "Person::m_password" (已声明 所在行数:10) 不可访问 return 0; }
class 和 struct 的区别:
struct 权限默认公共,class 权限默认私有
将成员属性设为私有
优点:
1.将成员属性设为私有,可以自己控制读写权限
2.对于写权限,我们可以检测数据的有效性
#include <iostream> using namespace std; //成员设置为私有 //1.可以自己控制读写权限 //2.对于写,可以检测数据的有效性 class Person { public: void setName(string name) { m_Name = name; } void readName() { cout << m_Name << endl; } protected: private: string m_Name; //可读可写 int m_age; //只读 string m_Lover; //只写 }; int main() { Person p1; p1.setName("张三"); p1.readName(); return 0; }
P104
标签:password,封装,C++,class,访问,include,第五天,权限,public From: https://www.cnblogs.com/ElevHe/p/17307912.html