c++ - 具有派生参数的基本c'tor

标签 c++

我创建了一些类:

class Base{
public:
 Base(int = 0);
 ~Base();
 Base(Base&);
 Base(Derived&); //<- here
 int valueOfBase();
protected:
 int protectedData;
private:
 int baseData;
};

class Derived: public Base{
public:
    Derived(int = 0);
    Derived(Derived&);
    ~Derived();
private:
    int derivedData;
};

###//Impplementation in .cpp

Base::Base(Base& base)
{
    baseData = base.baseData;
    protectedData = base.protectedData;
    cout << "base Copy C'tor" << endl;
}

Base::Base(Derived& hello)
{
    baseData = hello.protectedData;
}

但是当我尝试编译一些代码时,我收到一个错误(靠近这里)

expected ) before & token

我可以创建带有派生参数的基础 c'tor 来编写类似的东西吗

Derived derived(1);
Base base1 = derived;

如果没有,为什么? 提前致谢

最佳答案

您可能需要 Derived 的前向声明。

尝试在您的基类定义之上添加 class Derived;

关于c++ - 具有派生参数的基本c'tor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849451/

相关文章:

c++ - 如何将 utf32 字符串转换为 Unicode 字符串

c++ - Visual Studio 2010 Qt 插件 Cmake 项目

c++ - 算法倒数

c++ - move 构造函数(错误 : call to implicitly-deleted copy constructor)

c++ - 有没有简单的方法来制作 fastcgi 应用程序?

c++ - 需要帮助以 16 位二进制显示 2 的补码

c++ - MULES 是修正输运方程的正确选择吗? [OpenFOAM]

C++:为什么空格在读取时总是终止字符串?

c++ - 尝试在 C++ 中减少设计模式

C++ - 使用父类属性