【发布时间】:2018-01-29 09:20:21
【问题描述】:
我正在创建一个类,其中一个成员是指向结构的另一个成员的 const 指针(不可变地址)。
在下面的简化版本中,两个类是否总是表现相同的值?特别是在ptr中存储的地址是否保证正确初始化的意义上。
struct First
{
int a;
int* const ptr = &a;
};
struct Second
{
int a;
int* const ptr;
Second() : ptr(&a) {}
};
(在我的实际应用程序中,成员a 是一个类实例,ptr 被替换为从一些枚举到指向a 成员的指针的映射。)
【问题讨论】:
-
它们在类别(关于聚合......)方面存在细微差别。但
ptr的值已正确初始化。
标签: c++ constructor initialization language-lawyer