C++ C++;,派生类上具有istream的构造函数

C++ C++;,派生类上具有istream的构造函数,c++,constructor,stream,C++,Constructor,Stream,我对一个派生类有一个问题,这个派生类的构造函数在参数中有一个istream Reference.cpp .... Reference::Reference(istream& p_is) {...} .... class Livre : public Reference { private: void verifieInvariant() const; std::string m_editeur; std::string m_isbn;

我对一个派生类有一个问题,这个派生类的构造函数在参数中有一个istream

Reference.cpp

....
Reference::Reference(istream& p_is)
{...}
....
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.h

....
Reference::Reference(istream& p_is)
{...}
....
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.cpp

我的问题很简单。编译器不允许我为派生类Livre使用
istream
创建另一个构造函数。我的引用类是一个抽象类,我需要调用构造函数Livre中引用流的构造函数来完成信息。我的另一个选择是像这样写

Reference::Reference(std::istream& p_is)
{...}

进入我的生活。所以如果有人能向我解释一个更好的方法,我会非常感激。我知道我有很多代码,但要解释这个问题并不容易。谢谢大家。

我不确定这是否是问题所在,但我相信正确的方法是重写

Livre::Livre(std::istream& p_is)
{
    Reference(std::istream& p_is);
    /* ... */
}
作为


我不确定这是否是问题所在,但我相信正确的方法是重写

Livre::Livre(std::istream& p_is)
{
    Reference(std::istream& p_is);
    /* ... */
}
作为


小心,链接构造函数的正确方法是
Livre(std::istream&p_is):Reference(p_is){…}
@didierc,链接它们的唯一方法是这样的。@克里斯:当然,但是看到呈现的代码,你不会推断其意图是链接它们吗?小心,链接构造函数的正确方法是
Livre(std::istream&p_is):Reference(p_is){…}
@didierc,链接它们的唯一方法是这样的。@chris当然可以,但是看到呈现的代码,您不认为目的是链接它们吗?