我有两个吸气剂成员:
Node* prev() { return prev_; }
int value() { return value_ }
请注意缺少 const 标识符(我忘记了,但现在我想知道为什么这不起作用)。我试图让它编译:
Node(Node const& other) : prev_(other.prev()), value_(other.value()) { }
编译器拒绝这个。我认为 C++ 允许在函数参数中进行非 const 到 const 的转换,例如:
{
Foo(int bar);
}
Foo(const int bar)
{
//lala
}
为什么它不让我用复制构造函数做同样的事情?const 标识符意味着我保证不会更改任何内容,那么如果我从 const 或非 const 源获取我的值又有什么关系呢?