类与结构的C++效率
在 C++ 中,我试图决定是否使用结构或类。到目前为止,我知道两者或多或少是相同的,但是当需要私有变量或对执行操作的对象的概念进行分组时,更经常使用类。
但我想知道的是:在类中包含函数是否会增加内存需求(而不是具有结构,函数是分开的)?
这是一个例子
class Vector2D {
public:
int x;
int y;
Vector2D();
getMagnitude();
Normalize();
}
对比
struct Vector2D {
int x;
int y;
}
// Some functions defined separately
getMagnitude(Vector2D v);
Normalize(Vector2D v);
如果我有一堆其他向量函数,比如说,将它们中的两个加在一起,我有一个向量类,如果将它们包含在类中会更好,所以你有一个像 addToVector(Vector2D v2) 这样的函数或保留类之外的这些多向量函数,以便您有一个 addToVector(Vector2D v, Vector2D v2)?
我知道第二个问题可能倾向于意见,但如果有“最佳实践”定义的方式,我想知道。
谢谢
回答
类与结构的 C++ 效率
结构就是类。两者之间的效率为零。
在类中包含函数是否会增加内存需求(与结构不同,函数分开)?
不。成员函数和非成员函数的“内存要求”之间没有实际区别。
此外,结构可以具有成员函数。所有的类都可以有成员函数,结构就是类。