一個成員函數如果我有下面的C++類:抽象與不同的返回類型
class FileIOBase
{
//regular file operations
//
//virtual fstream/ifstream/ofstream getStream(); ???
//
bool open(const std::string &path);
bool isOpen() const;
void close();
...
};
class InputFile : FileIOBase
{
size_t read(...);
ifstream getStream();
};
class OutputFile : FileIOBase
{
size_t write(...);
ofstream getStream();
};
class InputOutputFile : virtual InputFile, virtual OutputFile
{
fstream getStream();
};
的類只是封裝在標準,出,入/出文件流和它們的操作。
有什麼辦法使界面的getStream()的一部分,它進入FileIOBase?
如果可以,有什麼你想用'FileIOBase :: getStream()'的結果嗎? – 2011-12-18 23:14:02
@OliCharlesworth在我看來'FileIOBase'應該是抽象的,因此它可能是純虛擬的。 (這不是真的有助於實現它,但會回答你的語義問題。) – 2011-12-18 23:16:56
什麼都沒有!我只是想將它添加到接口來強制派生類的實現。我知道我可以像往常一樣將它們添加到派生類中。並且由於派生類的數量有限,所以它實際上是有意義的,但我只是好奇而已! – p00ya00 2011-12-18 23:18:18