【发布时间】:2012-01-06 12:11:18
【问题描述】:
这是一个合二为一的问题:-D。
我在尝试使用 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 对象,这有关系吗?
最后,由于方法来自具有 const 值和地址的类 B,这些方法可以改变吗?
【问题讨论】:
标签: c++