在C++中 struct和class唯一的区别就在于 默认的访问权限不同
区别:
struct 默认权限为公共
class 默认权限为私有
class C1
{
int m_A; //默认是私有权限
};
struct C2
{
int m_A; //默认是公共权限
};
int main() {
C1 c1;
c1.m_A = 10; //错误,访问权限是私有
C2 c2;
c2.m_A = 10; //正确,访问权限是公共
system("pause");
return 0;
}
将成员属性设为私有的好处:
可以自己控制读写权限
对于写权限,我们可以检测数据的有效性
class Person {
public:
//姓名设置可读可写
void setName(string name) {
m_Name = name;
}
string getName()
{
return m_Name;
}
//获取年龄
int getAge() {
return m_Age;
}
//设置年龄
void setAge(int age) {
if (age < 30 || age > 0) {
cout << "younger!" << endl;
return;
}
m_Age = age;
}
//地址 设置为只写
void setLover(string place) {
m_Lover = place;
}
private:
string m_Name; //可读可写 姓名
int m_Age; //只读 年龄
string place; //只写 地址
};
int main() {
Person p;
//姓名设置
p.setName("张三");
cout << "姓名: " << p.getName() << endl;
//年龄设置
p.setAge(30);
cout << "年龄: " << p.getAge() << endl;
//地址设置
p.setLover("place");
//cout << "地址: " << p.place<< endl; //只写属性,不可以读取
system("pause");
return 0;
}