码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • class与struct


    在C++中class与struct之间区别不大,两者有很大的相似性。保留struct是为了向下兼容,所以C++中保留了很多C的东西。

    有关结构体和类具体可以参考以下链接:

    • C++类class的具体介绍:C++类(Class)总结 - 先之 - 博客园
    • C++结构struct的具体介绍:C++ 结构体(struct)最全详解 - 一杯清酒邀明月 - 博客园
    • C语言详解结构体:C语言详解:结构体_AKA你的闺蜜的博客-CSDN博客_c 语言结构体

    1.struct

    • C中,struct包含不同数据类型的数据结构体;
    • C++中,struct做了扩充,与class的功能类似:
      • 可以包含成员函数
      • 可以实现继承
      • 可以实现多态

    2.struct与class的区别

    • 定义语法关键字不同(struct/class)
    • struct是值类型,class是引用类型,
    • struct存储在栈中,但其中定义的引用类型是存储在堆中的
    • struct中字段不能赋初始值,class中字段没有影响
    • struct不能定义无参数的构造方法,且在有参构造函数中必须为所有字段和属性赋值
    • struct中有参构造方法不会覆盖默认的无参构造方法,即可以new无参的结构,class中有参构造方法会覆盖默认的无参构造方法,即无法调用默认无参构造方法,因此在class中最好定义一个无参构造方法,防止new创建对象失败。
    • struct不能定义析构方法,class可以
    • struct可以继承接口不可以继承class,class既可以继承接口,又可以继承class
       
    • 默认访问权限。struct作为数据结构的实现体,数据的默认访问是public;class作为对象的实现体,默认的访问是private。虽然struct作为数据结构的实现体可以像class一样使用,但是在这里依旧将struct里的变量称为数据,class里的变量称为成员。
    • 默认的继承访问权不同。class默认是private,struct默认是public。即class默认继承方式是private继承,而struct是public继承。所以类定义时要求指定继承方式。
    • class关键字可用于定义模板参数,类似于typename,但struct关键字不可用于定义模板参数。如class定义模板类:
    1. template<class T>
    2. class A {
    3. A(T num);
    4. };

    3 小结

    struct是一种特殊的值类型,栈的空间小,访问速度快,struct适用于字段、属性较少,作为一种组合类型使用,而class作为一种面向对象拓展的类型使用。

  • 相关阅读:
    python读取.txt文件中某些关键字后面的内容 并根据该数据画图
    SD-WAN不断冲击传统WAN架构
    葡聚糖-NHS/N3/Alkyne/SH/Biotin/CHO/OPSS/OH/NH2/COOH/MAL各种活性基团
    图论模板详解
    python 第一次作业
    MQ - 01 消息队列发展史&MQ通用架构
    Netty+WebSocket整合STOMP协议
    postgresql-常用数学函数
    css媒体查询新特性
    5. 最长回文子串
  • 原文地址:https://blog.csdn.net/CXYLVCHF/article/details/128031885
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号