我对派生类有一个问题,该派生类的构造函数带有 istream 参数。
参考.cpp_
....
Reference::Reference(istream& p_is)
{...}
....
Livre.h_ _
class Livre : public Reference
{
private:
void verifieInvariant() const;
std::string m_editeur;
std::string m_isbn;
public:
Livre(
const std::string& p_cote,
const std::string& p_theme,
const std::string& p_titre,
const std::string& p_auteurs,
int p_anneeEdition,
const util::Date& p_dateAcquisition,
const std::string& p_editeur,
const std::string& p_isbn);
Livre(std::istream& p_is);
...
下载文件
....
Livre::Livre(std::istream& p_is)
{
Reference(std::istream& p_is);
string editeur ="";
string isbn = "";
string buffer = "";
getline(p_is, buffer);
getline(p_is, editeur);
getline(p_is, isbn);
m_editeur = editeur;
m_isbn = isbn;
}
好的,所以我的问题很简单。编译器不允许我istream
为派生类 Livre 创建另一个构造函数。我的 Reference 类是一个抽象类,我需要在构造函数 Livre 中使用 Reference 的流调用构造函数来完成信息。我的另一个选择是写
Reference::Reference(std::istream& p_is)
{...}
进入我的 Livre.cpp。因此,如果有人可以向我解释一个更好的方法,我将不胜感激。我知道我有很多代码,但要解释这个问题并不容易。多谢你们。