struct 与 class的区别(在标准C++中)

在C++中struct 与 class 区别

  1. struct中的成员默认是public。class中默认的是private
  2. 如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同。
  3. 在用模板的时候只能写
     template <class Type>或template<typemname Type>
    不能写template<struct Type>

4.C++中struct的继承

struct A
{
    char a;
};
struct B:A
{
    char b;
};
//B是public继承A的,如果将struct全部改写为class则B是private继承A的(这就是默认的继承访问权限),平常我们一般写成: struct B:public A {};
//继承到底是public继承还是private继承,取决于子类而不是基类,struct可以继承class,同样class也可继承struct,那么默认的继承访问权限是看子类到底是用struct还是class;eg:
struct A
{};
class B:A    //private继承
{};
struct C:B   //public继承
{};

//eg:
struct A
{
    char c;
    int i;
    double d;
};
A a={'p',7,3.1415926};//定义时直接赋值
//也就是说struct在定义的时候用{}赋初值。向该struct中加入一个构造函数(或虚函数),struct也不能用{}赋初值了,表示加入该函数使类的内部结构发生了变化,而加入一个普通函数则不影响该功能。

若你还想了解struct结构在C和C++中的区别,请看博客
struct结构在C和C++中的区别
struct 与 union 在C与C++中的区别

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值