【发布时间】:2011-05-20 03:06:00
【问题描述】:
如果我有这样定义的类:
class classWithInt
{
public:
classWithInt();
...
private:
int someInt;
...
}
而someInt 是classWithInt 中唯一且唯一的一个成员变量,那么声明这个类的新实例比只声明一个新整数要慢多少?
如果你在课堂上有 10 个这样的整数呢? 100?
【问题讨论】:
-
类是魔鬼。你永远不应该使用它们。你所有的代码都应该放在一个包含很多函数的巨大模块中,并且应该在全局变量中使用简单的类型。在相关说明上;当我感到特别讽刺时,我应该停止访问这个网站。 :p
-
为什么不尝试创建 100 个类和 100 个整数呢?甚至一百万个整数!
-
您是否尝试过并对其进行了分析?为什么这有关系?你为什么要这样做?我敢打赌它会慢数百倍,但你的编译器可能会做一些花哨的事情。您有什么用例使这具有相关性?
-
答案取决于您的 classWithInt() 构造函数是否计算 pi 并将第 100 万位小数存储到 someInt 中。 :-)
-
在编译好的面向对象语言(如 C++)中,类声明只会减慢编译速度——而且可能不足以让您注意到甚至无法衡量。在运行时,它会根据实例大小、基类的数量以及构造函数的作用而有所不同。像
int这样的灵长类类型,它不是一个类,它非常轻量级,并且可以编译和运行,因为语义是内置的并且接近硬件自然所做的。
标签: c++ class optimization int