重複の可能性:
非静的メンバー関数のデフォルト引数としての非静的メンバー
メンバー変数をパラメーターのデフォルトとして使用できないのはなぜですか?
ここで非常に単純化されたものを見ていなかったり、C++ の基本的なルールを忘れていたりする場合は、前もってお詫びしますが、なぜこれが期待どおりに機能しないのかわかりません。
動作しないコードの例を次に示します
class Foo
{
private:
Bar *ptrBar;
public:
void doSomething(int x, Bar *p = ptrBar);
}
コンパイラは、この関数のデフォルト パラメータに問題があります。これが機能しない理由は何かありますか。
基本的に doSomething は Bar オブジェクトに対して何らかの操作を行いますが、デフォルトで ptrBar が指すものにしたいと考えています。私が何かを忘れていない限り、すべてが健全に見えますか?