zoukankan      html  css  js  c++  java
  • struct和class的区别

    class类似的一个结构就是struct了,struct最早是在C语言中出现的,在C++中对struct的功能也进行了扩展。

    一、默认的继承权限

    struct默认是公有继承,class默认是私有继承。

    二、关于默认访问权限

    class中默认的成员访问权限是private的,而Struct中则是public的。

    三、关于大括号初始化问题

    1. struct在C语言中
      在C语言中,我们知道struct中是一种数据类型,只能定义数据成员,不能定义函数,这是因为C语言是面向过程的,面向过程认为数据和操作是分开的,
      所以C语言中的struct可以直接使用大括号对所有数据成员进行初始化
      例如:
    struct test
    {
        int a;
        int b;
    };
    //初始化
    test A={1,2};//完全可以
    
    1. 在C++中class和struct的区别
      在C++中对struct的功能进行了扩展,struct可以被继承,可以包含成员函数,也可以实现多态,当用大括号对其进行初始化需要注意:

    当struct和class中都定义了构造函数,就不能使用大括号对其进行初始化。
    若没有定义构造函数,struct可以使用{ }进行初始化,而只有当class的所有数据成员及函数为public时,可以使用{ }进行初始化
    所以struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

    四、关于模板

    在模板中,类型参数前面可以使用class或typename,如果使用struct,则含义不同,struct后面跟的是“non-type template parameter”,而class或typename后面跟的是类型参数。

    参考:
    struct和class的区别

    作者:yusq77

    -------------------------------------------

    Wish you all the best and good health in 2021.

  • 相关阅读:
    java后端
    2017-12-11
    二叉树与分治法整理
    javaweb
    安装docker
    爬虫
    lintcode
    DEEPlearning
    剑指offer_by牛客网
    DFS
  • 原文地址:https://www.cnblogs.com/yusq77/p/13876852.html
Copyright © 2011-2022 走看看