【发布时间】:2015-04-05 16:57:59
【问题描述】:
很多时候,我在 C++ 代码中看到结构的指针分配为;
struct Current{
int amp;
};
Current *cur = new Current();
但是,“Current”在这里是一个结构而不是类,但在 C++ 中受支持。用它来代替 C 类型分配有多好,如下所示:
Current *cur = (Current*) malloc (sizeof(Current));
这背后的基本概念是什么?我知道的是,“结构”在 C++ 中被视为“类”。
C++ 中 struct-VS-class 的概念是已知的。查询主要是关于特定用例的,因为两者都是允许的,但应该优先考虑哪个,为什么?
【问题讨论】:
-
C/C++ Struct vs Class 的可能重复项
-
在 C++ 中,建议使用 new/delete 而不是使用 malloc()/free(),即使对于结构(与类相同,除了成员变量默认是公共的)
-
结构/类,真的一样。无论如何,你为什么首先使用动态分配?你确定你需要它吗?通常不熟悉 C++ 的人喜欢无缘无故地使用
new关键字。这就是为什么它被称为new。它是newbie的缩写。