加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 仅包含编译时常量的类的大小

发布时间:2020-12-16 10:17:13 所属栏目:百科 来源:网络整理
导读:例如,如果我有一个只包含编译时常量的类, class A { static const int x = 1; static const int y = 2; static const int z = 3;}; 我相信情况就是这样,只要不采用常量的地址,它们就可以(将会)在编译时被替换它们使用它们并且不会占用可执行文件中的任何空间
例如,如果我有一个只包含编译时常量的类,

class A {
    static const int x = 1;
    static const int y = 2;
    static const int z = 3;
};

我相信情况就是这样,只要不采用常量的地址,它们就可以(将会)在编译时被替换它们使用它们并且不会占用可执行文件中的任何空间(作为常量,显然,数字本身必须出现).如果是这种情况可以/将该类优化出来吗?并且,如果某些东西继承自A类,但仍然只使用常量本身并且不使用它们的地址,这会改变吗?

哦,并假设,在非继承版本中,除了作为访问常量的方法之外,该类实际上并未在任何地方使用.

谢谢.

解决方法

使用的空间

不,静态const int成员将不会为它们分配任何空间,因为它们被评估为编译时常量.

至于类对象的大小(即sizeof(A)),这是不相关的,除非你创建了A类的实例 – 你明确表示你不是.

请改用命名空间?

也就是说,也许您可??以使用命名空间来使您的意图更清晰一点?除非您将它用于模板特征之类的东西,否则您似乎正在滥用类来完成作业命名空间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读