タグ付けされた質問 「pure-virtual」


9
実装された純粋な仮想関数
私の基本的な理解は、純粋仮想関数の実装がないということですが、純粋仮想関数の実装があるかもしれないと言われました。 class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } 上記のコードは大丈夫ですか? それを実装を備えた純粋な仮想関数にする目的は何ですか?
176 c++  pure-virtual 


12
C ++で純粋な仮想デストラクタが必要なのはなぜですか?
仮想デストラクタの必要性を理解しています。しかし、なぜ純粋な仮想デストラクタが必要なのでしょうか。C ++の記事の1つで、著者は、クラスを抽象化するときに純粋な仮想デストラクタを使用すると述べています。 しかし、メンバー関数のいずれかを純粋な仮想関数にすることで、クラスを抽象化できます。 だから私の質問は デストラクタを本当に仮想化するのはいつですか?誰かが良いリアルタイムの例を挙げられますか? 抽象クラスを作成するときに、デストラクタも純粋に仮想化することをお勧めしますか?はいの場合、なぜですか?

11
純粋な仮想関数が0で初期化されるのはなぜですか?
常に純粋仮想関数を次のように宣言します。 virtual void fun () = 0 ; つまり、常に0に割り当てられます。 私が理解しているのは、これがこの関数のvtableエントリをNULLに初期化することであり、ここに他の値があるとコンパイル時エラーが発生することです。この理解は正しいですか。


6
純粋関数の利点
今日、私は純粋関数について読んでいて、その使用法に混乱しました: 関数が同じ入力セットに対して同じ値セットを返し、観察可能な副作用がない場合、関数は純粋であると言われます。 たとえば、strlen()は純粋関数rand()ですが、は不純な関数です。 __attribute__ ((pure)) int fun(int i) { return i*i; } int main() { int i=10; printf("%d",fun(i));//outputs 100 return 0; } http://ideone.com/33XJU 上記のプログラムは、pure宣言がない場合と同じように動作します。 関数をpure[出力に変更がない場合]として宣言する利点は何ですか?
81 c  pure-virtual 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.