私は2つのゲッターメンバーを持っています:
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 識別子は、何も変更しないことを約束することを意味します。