-1
A
回答
1
你正在谈论默认构造函数(而不是重新分配或复制构造函数)。
const成员,其类型没有明确定义默认构造函数
它禁止默认的构造函数,否则你将有一个未初始化的常量的值(所以没用)。 (如果它不是const
,它未初始化的事实不是问题,我们可以稍后分配它)。
不具有一个在类初始化器
它也禁止的,如参考类似于非零常量指针基准部件。
struct NoDefaultConstructor
{
// No default constructor can be generated.
const int i; // which value to set by default ?
int& r; // reference which object by default?
};
struct InClassInitializerSoDefaultConstruct
{
// default constructor is generated here.
const int i = 42;
int j;
int& r = j;
};
编辑回答编辑Q
对于分配,const
值不能改变。 和引用类似于非空常量指针。
请注意,复制构造函数没有此限制,因为您可能(并且必须) 初始化const`值。
+0
对不起。我改变了我的问题。 – Zeukis 2014-08-31 15:48:22
相关问题
- 1. 混合默认和非默认的构造函数
- 2. 默认构造函数
- 3. constexpr默认构造函数
- 4. C++,默认构造函数
- 5. 非默认构造函数
- 6. C++编译器如何合成默认拷贝构造函数
- 7. 从参数化构造函数调用默认构造函数
- 8. 默认的默认构造函数,为什么不是用户提供的默认构造函数?
- 9. 构造函数替换默认构造函数?
- 10. 从另一个构造函数调用默认构造函数
- 11. 类型成员的默认构造函数的默认参数struct
- 12. 属性构造函数的默认值?
- 13. NSObject的默认构造函数
- 14. 避免默认的构造函数
- 15. 了解默认的构造函数C++
- 16. QGIS:QgsVectorLayer和QgsRasterLayer的默认构造函数?
- 17. 重写默认的构造函数
- 18. 找不到默认的构造函数
- 19. 没有默认的构造函数
- 20. 片段中的默认构造函数
- 21. IntentService(kotlin)的默认构造函数
- 22. Javascript中的默认构造函数
- 23. 使用默认的构造函数
- 24. 为什么具有继承构造函数的类还会获得合成的默认构造函数?
- 25. Python类构造函数默认参数
- 26. 默认和参数化构造函数
- 27. MVVM ViewModel默认构造函数
- 28. android studio - 默认构造函数?
- 29. 调用默认构造函数
- 30. 静态和默认构造函数
由于引用*与const指针*相似,不能更改(仅初始化) – firda 2014-08-31 15:49:49
在您的原始问题中,您已经表明理解了'const'的推理:您不能重新分配'const'变量。既然同样的推理也适用于参考变量,我不太明白你在问什么。 – hvd 2014-08-31 15:50:04