02 strcut和class的区别
在 c++中,封装的语法是:class 类的名称 {访问权限: 属性 / 行为};
。当然,也可以struct 类的名称 {访问权限: 属性 / 行为};
strcut
和class
的唯一区别就是:默认访问权限不同。
strcut
:默认权限为公共权限,即:public
;class
:默认权限为私有权限,即:private
;
另外插一嘴,strcut
是结构体的定义关键字。忘记可以翻笔记看看。
#include <iostream>
using namespace std;
class c1
{
int a = 10; // 默认权限私有
};
struct c2
{
int a = 20; // 默认权限公共
};
int main()
{
//实例化
class c1 c1;
struct c2 c2;
//cout << c1.a << endl; //无法访问
cout << c2.a << endl;
system("pause");
return 0;
}
不过我认为还是以后用类比较好。也就是class
,因为class
关键字很好记,但其实struct
也挺好记的。
不管是class
还是struct
都可以设置权限。比如这样:
class Student
{
private:
string m_name;
int m_age;
int m_scores;
public:
void setname(string name)
{
m_name = name;
}
void setage(int age)
{
m_age = age;
}
void setscores(int scores)
{
m_scores = scores;
}
string getname()
{
return m_name;
}
int getage()
{
return m_age;
}
int getscores()
{
return m_scores;
}
}
void main()
{
class Student s1;
}
当然这是下一节的内容。这样可以控制读写权限。比如上面的例子中。如果想要获取对象s1
的age
的话,只能通过s1.getage()
函数调用。
:-)