c++子类作为方法的参数

标签 c++ class parameters subclass

我想写两个类,在父类(super class)中我需要方法女巫作为参数有一个子类,就像这个示例代码一样:

class class1
{
    int a;
    void print(class2 k)
    {
        cout<<k.b*a;
    }  
};

class class2 :public class1
{
    public:
    int b;
};

不幸的是,这是不对的 ;-) 我想不通,有人可以帮忙吗?

最佳答案

使用前向声明并将实现移到之外:

class class2;
class class1
{
    int a;
    void print(class2 k);
};

class class2 :public class1
{
    public:
    int b;
};

您不能将方法保持内联,因为您需要 class2 的完整类型,此时无法使用。

但这里的主要问题是设计,这是错误的。为什么基类需要知道派生类的调用方法?

关于c++子类作为方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157680/

相关文章:

c++ - 如何访问作为双指针传递的数组的元素?

c++ - pair<int, int> vector 数组的下限函数

python - 如何在Python类中调用 "namespace"方法

javascript - ES6 箭头函数 () vs _

C++ 对局部变量的引用与对参数的引用

c# - 获取指向 C# 的 C++ 指针

c++ - 什么时候在构造函数和析构函数中调用 this-> 是安全的

mysql - .NET - 通过连接到数据库导入类

java - Java 中的 Circle 类

swift 类型类没有成员函数