class 与 struct的区别

来源:互联网 发布:施耐德plc仿真软件 编辑:程序博客网 时间:2024/06/06 03:45

学C语言时,用struct来定义结构体,后来学C++的类,有时用struct有时用class,总会以为它们两个有很大的差别。
事实上在C++Primer 5th中文版p546中明确地指出了,class与struct在定义类时 唯一 的差别是 默认成员访问说明符默认派生访问说明符

一、默认成员访问说明符

class A{    int a;    int b;public:    int c;private:    int d;}

在未遇到说明符时,class的成员默认是private的,即a、b是private的。

struct A{    int a;    int b;public:    int c;private:    int d;}

在未遇到说明符时,struct的成员默认是public的,即a、b是public的。

二、默认派生访问说明符

在继承、派生时,class与struct的默认继承保护与前面的成员访问时类似。

class Base {    /*……*/};struct D1 : Base{    /*……*/}class D2 : Base{    /*……*/}

其中,D1默认为public继承, D2默认为private继承。

综上,只要处理好了private、public的不同,其他任何情况class与struct都可以随意选择一个使用。

1 0
原创粉丝点击