这是两个问题之一:-D。在对象构造函数和成员函数中使用const的C++
我在尝试使用const时遇到了一对编译错误。
我正在努力实现的目标。
在我的类构造函数中,我将一个指针传递给一个对象。我不想改变对象的地址和值,所以我使用const。这里是我的代码看起来像
类的构造函数
A::A(const B* const example): m_example(example) {
m_mth1_ex = m_example->method1();
m_mth2_ex = m_example->method2();
}
在类的头文件,我收到
C* const m_mth1_ex;
D* const m_mth2_ex ;
错误:
error: uninitialized member 'A::m_mth1_ex' with 'const' type 'C* const'
error: uninitialized member 'A::m_mth2_ex' with 'const' type 'D* const'
error: assignment of read-only data-member 'A::m_mth1_ex'
error: assignment of read-only data-member 'A::m_mth1_ex'
我想,既然我初始化在构造函数中这些值是正常的,但我想我在头文件中声明它们,const不像那样...
其次,来自B类的方法不返回const对象吗?
最后,由于方法来自B类,它有一个常量值,地址会不会改变这些方法?
我相信我会在构造函数中遇到这个问题。我将需要重载新操作符,或者更好地使用智能指针,如您所说:-D – MWright