在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;
}