【发布时间】:2010-11-28 09:28:43
【问题描述】:
我想知道用 C++ 编写“全能”类是否以及如何影响性能。
如果我有一个类 Point,只有 uint x; uint y; 作为数据,并且几乎将数学可以做的所有事情都定义为方法。其中一些方法可能很大。 (复制)构造函数只是初始化两个数据成员。
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,将它们填充到一个向量中并使用它们。 (比如说,所有方法都被调用一次) 这只是一个愚蠢的例子!
它会比没有方法但有很多实用功能的同一个类慢吗?我绝不是在谈论虚函数!
我的动机:我经常发现自己编写了不错且相对强大的类,但是当我必须像上面的示例中那样初始化/使用大量它们时,我会感到紧张。 我想我不应该。
我认为我知道的是:
- 方法在内存中只存在一次。 (优化除外)
- 分配 只发生在数据 成员,他们是唯一的东西 复制。
所以没关系。我错过了什么吗?
【问题讨论】:
标签: c++ performance