您的位置:首页 > 其它

关于struct和class的区别

2013-03-27 14:53 218 查看
struct和class的区别在C++中的区别比较小,两者都可以用来定义类,进行方法和运算符重载,

他们的区别在于默认的访问级别,struct在没有声明访问修饰符的时候默认是public,而class为private

代码:

struct S{
S() : m_a(0){}
int m_a;
};
class C{
C() : m_a(0){}
int m_a;
};

S s;
printf("s.m_a = %d", s.m_a);
C c;//error!printf("c.m_a = %d", c.m_a);//error!


以上代码class C是不能被实例化的,因为构造函数为private

需要说明的是,struct是能够被继承的,只是默认继承的修饰符不一样,struct为public继承,而class为private继承

struct S{

S() : m_a(0){}

int m_a;

};

struct D : S{};

class C : S{};

int temp;

D d;

C c;

temp = d.m_a;

temp = c.m_a;//error







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: