这是我正在尝试的简化版本
#include <iostream>
using namespace std ;
class a
{
public:
a(int xinit, int yinit){x=xinit; y=yinit;}
private:
int x, y;
};
class b
{
public:
b(int pinit, int qinit){p=pinit; q=qinit;}
private:
int p,q;
a Test(p,q);
};
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译时,它给出错误'p'不是一种类型.谁能告诉我什么是错的?
小智 8
最烦恼的解析.a Test(p,q);
被解析为函数声明.你不希望(我假设) - 相反,你想要将成员声明为a Test;
并在构造函数中指定它.
所以你可以做的是明确地初始化它:
public:
b(int pinit, int qinit): p(pinit), q(qinit), Test(p, q) { }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
354 次 |
最近记录: |