我想知道在C++中编写"全能"类是否会影响性能,以及如何影响。
例如,如果我有一个只包含 uint x; uint y; 数据的类 Point,并且已经定义了所有数学操作的方法。其中一些方法可能非常大。 (复制-) 构造函数仅初始化这两个数据成员。
class Point
{
int mx; int my;
Point(int x, int y):mx(x),my(y){};
Point(const Point& other):mx(other.x),my(other.y){};
// .... HUGE number of methods....
};
现在我加载了一个大图像,并为每个像素创建一个Point,将它们塞到一个向量中并使用它们。(比如,所有方法都只被调用了一次)这只是一个愚蠢的例子! 是否会比没有方法但有很多实用函数的相同类更慢? 我不以任何方式谈论虚函数!我的动机是:我经常发现自己编写漂亮而相对功能强大的类,但当我必须像上面的示例一样初始化/使用大量这些类时,我会感到紧张。我认为我不应该这样。 我认为我知道的是:
- 方法在内存中只存在一次。(除了优化)
- 分配只针对数据成员进行, 并且它们是唯一被复制的东西。