我想写两个类,在父类(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/