例如,如果我有一个只包含编译时常量的类,
class A {
static const int x = 1;
static const int y = 2;
static const int z = 3;
};
Run Code Online (Sandbox Code Playgroud)
我相信情况是这样的,只要不采用常量的地址,它们就可以(将会)在编译时被替换它们使用它们并且不占用可执行文件中的任何空间(作为常量,显然,数字本身必须出现).如果是这种情况可以/将该类优化出来吗?并且,如果某些东西继承class A自己,但仍然只使用常量并且不使用它们的地址,这会改变吗?
哦,并假设,在非继承版本中,除了作为访问常量的方法之外,该类实际上并未在任何地方使用.
谢谢.
这些变量是否是无关紧要的const; 他们是static,所以他们不会影响班级的规模.
sizeof(A)不能为零,所以如果你创建一个实例,A它必须至少有一个字节大小.但是,将A基类作为基类并不一定会增加派生类的大小,因为"基类子对象的大小可能为零"(C++03§1.8/ 5).
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |