C++ struct与class的区别

2023-05-16

可以归纳为:

struct A
{
    char a;
};

struct B : A
{
    char b;
};

1、struct作为数据结构实现体,它的数据访问默认是Public公有的,class作为对象的实现体,它的成员变量访问默认是Private私有的。

struct A{};class B : A{};//私有继承
struct C : B{};//公有继承 

struct可以继承class,class也可以继承struct,是Public公有继承还是Private私有继承取决于子类而非基类(父类)。

2、class可以用来定义模板,struct则不可以。

3、struct的特性是面向过程的,class则是面向对象的。一般在struct中不用构造函数或者虚函数,如果添加,则特性与class相同,访问权限也变为私有的。

struct A
{
    char a;
    int b;
    double c;
};

A a = {'a',1,1.1};//定义时直接赋值

将上面代码中的struct换成class,则会报错,原因是改为class则结构中的数据访问就变为私有。

除了上述三种区别,struct与class几乎一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ struct与class的区别 的相关文章

  • 更改 CSS 样式表的选择器属性

    以下是我们传统上如何更改重复元素的样式 将样式应用到每个元素 function changeStyle selector prop val var elems document querySelectorAll selector Array
  • 修改对象实例的 TypeScript 类装饰器

    我正在为 Aurelia 制作一个插件 需要一个类装饰器 将属性添加到新对象实例 并且 使用新对象作为参数调用外部函数 我已经查看了示例 到目前为止我已经将它们放在一起 伪 代码 return function addAndCall tar
  • 无法使用“class”作为 NSDictionary 中的键

    我正在尝试使用一个类作为NSDictionary 我看了答案这个问题 https stackoverflow com questions 730076 using class as key in nsdictionary我所拥有的几乎是一样
  • 在 Groovy 中分配对象属性的简写方法?

    我使用此约定创建 Groovy 对象 Item item1 new Item name foo weight 150 是否有操作属性对象的速记约定 像这样的东西 item1 name hello weight 175 this does n
  • 易失性结构=结构不可能,为什么?

    struct FOO int a int b int c volatile struct FOO foo int main void foo a 10 foo b 10 foo c 10 struct FOO test foo return
  • 在 C++ 中一般将“可选”字段封装在结构中的最佳方法?

    我有很多具体结构 我想将字段指定为可选 存在或不存在 只是想知道人们有什么想法来实现这一目标 这是一个示例结构 字段也可以是其他结构 甚至是结构的向量 struct LogonMessage t Header t header this p
  • 将 struct* 从 C# 传递到 C++ dll

    C dll中的结构体定义如下 struct WAVE INFO int channel num int audio type char wave data int wave length 调用方法如下 extern C STRUCTDLL
  • 将结构更改为密封类时隐式转换失败

    有问题的结构 类 public struct HttpMethod public static readonly HttpMethod Get new HttpMethod GET public static readonly HttpMe
  • 代表和结构的速度问题

    我遇到了一些与结构和委托有关的速度问题 采用以下控制台应用程序代码 public delegate string StringGetter public class LocalString public LocalString string
  • 用于创建类图的工具[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 请建议用于创建符合以下标准的类图的工具 它应该是平台无关的 因为我使用 Linux 并且该文件预计由使用 Windows Mac 的团队其
  • Python 类中的继承顺序

    我有课ExampleSim它继承自基类Physics class Physics object arg1 arg1 def physics method print physics method class ExampleSim Physi
  • Golang 基础知识 struct 和 new() 关键字

    我正在学习 golang 当我阅读描述结构的章节时 我遇到了初始化结构的不同方法 p1 passport var p2 passport p3 passport Photo make byte 0 0 Name Scott Surname
  • C 中的空结构

    我有一个没有成员的结构 目前 我想知道是否可以抑制我收到的警告 warning struct has no members 是否可以添加会员并保留sizeof结构零 还有其他解决方案吗 在 c 中 空结构的行为取决于编译器 而在 c 中 空
  • 常量表达式包含无效操作[重复]

    这个问题在这里已经有答案了 我有以下代码 出现错误 PHP 致命错误 常量表达式包含无效操作 当我在构造函数中定义变量时 它工作得很好 我正在使用 Laravel 框架
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 不能从模板 C++ 类继承[重复]

    这个问题在这里已经有答案了 我不知道这里出了什么问题 也许有人可以帮助我 我想继承我的新班级MyDictionary来自模板抽象类dictionary 我有这样的代码 字典 h ifndef UNTITLED CPP DICTIONARY
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 我们可以实例化一个抽象类吗?

    在一次采访中 有人问我 我们是否可以实例化一个抽象类 我的回答是 不 我们不能 但是 面试官告诉我 错了 我们可以 我对此争论了一下 然后他告诉我自己在家尝试一下 abstract class my public void mymethod
  • C 中的隐秘结构定义

    我遇到了以下情况迷宫定义 https github com gduarte lkb blob master code stack maze h code typedef struct mazeNode int hasCheese int t

随机推荐