C++ 为什么我不能拿自己定义的新类A的对象作为另外一个类B的一个成员变量?

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:43:38
RT 两边的头文件我都有加上 但编译器还是提示说不能识别我自己定义的那个新类A 请问这是为什么

另外 有一种解决方法 就是把这个成员变量定义为指针 然后在B类的声明之前加上 class A ;
这样的话就能编译通过 运行起来好像也可以 请问这又是为什么

我感觉还是两边的头文件都加上出的问题
比如B要用A的 你就在B的CPP文件加上A的头文件就可以了 不要俩头加

完全可以啊,见示例,不明白的地方hi我

#include<iostream>
using namespace std;
class A
{
public:
A():m1(0),m2(0){}
~A(){}
void display(void){cout << "m1 = " << m1 <<"\nm2 = " << m2 <<endl;}
int m1;
int m2;
};
class B
{
public:
B():m(3){}
~B(){}
void display(void){
cout << "Class A member a In Class B: \n";
a.display();
cout << "Integer member m In Class B: \n" << " m = " << m << endl;
}
A a; // Class A类型成员
int m;
};

void main()
{
B b;
b.display();
}

运行输出:
Class A member a In Class B:
m1 = 0
m2 = 0
Integer member m In Class B:
m = 3

我的 Turbo C 怎么不能定义float数据 为什么不能这样定义? 我为什么不能控制自己? 为什么我不能说服自己~ 为什么我不能控制自己 为什么不能定义成int a=b=c=2;而要定义成int a=2,b=2,c=2; 我的CS1.6为什么不能右手拿枪。 为什么我拿手机下载电脑不能识别USB了 为什么我不能拿冬天爷爷树下放的礼物? 为什么我的耳麦拿回家就不能听到声音?