有人能解释一下这个C++语法吗
Can someone explain this C++ syntax?
我正在浏览别人的代码,发现了以下语法:
typedef struct abc {
abc() : member(0){}
unsigned int member
}
它看起来像是一个带有成员变量和构造函数的类,只是它被声明为struct。我有两个问题。
- C中支持这种语法吗
- 在类上使用structs的原因是什么
提前非常感谢。
PS:我该如何格式化代码?
这是无效的C.
在C++中,struct
和class
本质上是同义词。唯一的区别是,成员和继承在struct
中默认为public
,在class
中默认为private
。
关于是选择struct
还是class
,没有硬性的指导原则。然而,您经常会发现人们只将struct
用于简单的类似C的普通旧数据结构("POD")。
这无疑只是C++。struct
和class
在C++中是相同的,只是对于继承和类内容默认为public而不是private。
在C++中,结构和类本质上是一样的,只是结构的成员默认为公共成员。所以只要像上课一样读就行了。
abc()
是类abc
的构造函数,member
是内部变量,构造函数abc
默认将member
设置为0。
- 支持语法。构造函数将
member
初始化为0
,不执行任何其他操作 - CCD_ 19具有默认的CCD_
这是C++代码,但是在C++代码中使用typedef struct
(来自C)非常糟糕。C和C++之间有区别,在C++中不需要typedef
结构。如果您想通过MyStruct myStruct;
引用结构,那么struct MyStruct
就足够了。将C与C++混合使用是不好的。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- C++语法差异:二维和一维数组(指针算术)
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么