c++中怎么在一个类中实例化另一个类?代码如下,问题在代码注释中,谢谢 5
#include<iostream>usingnamespacestd;classA{inti;public:A(intx){i=x;}};classB{Aaa();//...
#include<iostream>
using namespace std;
class A
{
int i ;
public :
A (int x )
{
i=x ;
}
} ;
class B
{
A aa();//这个地方!!这一行这样写运行没有错误
//如果这一行换成A aa(6);运行有错误,为什么呀??
};
int main ( )
{
B b;
return 0;
}
或者大家可以教我点类似这个问题的别的知识 谢谢 展开
using namespace std;
class A
{
int i ;
public :
A (int x )
{
i=x ;
}
} ;
class B
{
A aa();//这个地方!!这一行这样写运行没有错误
//如果这一行换成A aa(6);运行有错误,为什么呀??
};
int main ( )
{
B b;
return 0;
}
或者大家可以教我点类似这个问题的别的知识 谢谢 展开
1个回答
展开全部
class B
{
A aa();//这个地方!!这一行这样写运行没有错误
//如果这一行换成A aa(6);运行有错误,为什么呀??
};
A aa();// 因为编译器把它当成了一个函数了 函数名为aa,返回值类型为A;
//如果这一行换成A aa(6);运行有错误,为什么呀??
同样被当成函数了,A为返回值类型,aa为函数名,参数表你给一个常数6当然报错啦。
正确的方法是
class B
{
A aa;
public:
B(){}
B(int a) : aa(a){} // 类的成员变量必须在构造函数
// 初始化列表或者函数中初始化
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询