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++中的区别

发布了66 篇原创文章 · 获赞 20 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览