前面讲的面向过程和面向对象,大家都有了基本的了解,也用struct定义了类,那么接下来咱们就用C++提供的另一个关键字class来定义类,同样的我们还是使用前面的学生结构,首先直接把struct改成class看有没有什么问题。
class Stu //定义学生结构
{
int id;
int age;
char name[10];
void init(int sid = 0, int sage = 0, const char* sname = "NULL")
{
id = sid;
age = sage;
strcpy(name, sname);
}
void showStuInfo()
{
cout << id << " " << age << " " << name << endl;
}
};
int main()
{
Stu cPlus;//前面讲过在C++中可以省略,struct关键字
cPlus.init();// error “Stu::init”: 无法访问 private 成员
cPlus.showStuInfo();//error “Stu::showStuInfo”: 无法访问 private 成员
return 0;
}
编译代码会发现,有两处错误,大概的意思都是说无法访问private成员,那么什么意思呢?这就是struct和class的不同之处了:
相同点:
对于上面的代码,我们可以这样修改一下在类中的最上面加上public,这样就可以在外面随意访问成员啦
如果说只想让外部能够访问成员函数,而不想让外部访问到成员变量,那么可以这样
至于protected访问限定符,是作用与派生类中的,这个后面会讲到(对于类的外部来说,和private一样)
全部0条评论
快来发表一下你的评论吧 !