0

統計と実装は次のとおりです。

統計: virtual Status Delete(const WriteOptions& options, const Slice& key) = 0;

埋め込む: Status DB::Delete(const WriteOptions& opt, const Slice& key) { WriteBatch batch; batch.Delete(key); return Write(opt, &batch); }

4

1 に答える 1

0

基本クラスの削除が不完全である可能性があります。ただし、実装は、基本クラスが実行できるすべてのことを提供します。したがって、派生クラスは Base::Delete を呼び出す必要があります。適切なドキュメントがなければ、プログラマーはそれを見逃す可能性があります。

10.3 の標準:

これは (g++ -std=c++11 test.cc -o test) をコンパイルし、問題なく実行されます。

#include <iostream>
struct X { virtual void f() = 0; };
struct Y : X { virtual void f(); };
void X::f () { std::cout << 'X' << std::endl;}
void Y::f () { X::f(); std::cout << 'Y' << std::endl;}
int main() {
    Y y;
    y.f();
    return 0;
}
于 2013-08-15T11:08:39.750 に答える