C++中如果要用的类定义在使用之后,该怎样声明?
例题如下:#include<iostream.h>#include<stdio.h>#include<conio.h>classA;classB{private:inti...
例题如下:
#include<iostream.h>
#include<stdio.h>
#include <conio.h>
class A ;
class B {
private:
int i ;
A a;
public:
B(int t , A b):a(b){
i = t ;
}
};
class A {
private:
int i ;
int j ;
public:
int geti() {
return i ;
}
A(int a , int b ){
i = a ;
j = b ;
}
};
int main() {
A a(2,3) ;
B(1,a) ;
return 0 ;
} 展开
#include<iostream.h>
#include<stdio.h>
#include <conio.h>
class A ;
class B {
private:
int i ;
A a;
public:
B(int t , A b):a(b){
i = t ;
}
};
class A {
private:
int i ;
int j ;
public:
int geti() {
return i ;
}
A(int a , int b ){
i = a ;
j = b ;
}
};
int main() {
A a(2,3) ;
B(1,a) ;
return 0 ;
} 展开
2个回答
2013-09-22
展开全部
这个声明,有时称为前向声明(forward declaraton),在声明之后、定义之前,类A是一个不完全类型(incompete type),即已知A是一个类型,但不知道包含哪些成员。
不完全类型(incomplete type)只能以有限方式使用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。
#include<iostream.h>
#include<stdio.h>
#include <conio.h>
class A;
class B {
private:
int i;
A &a;
public:
B(int t, A &b):a(b){
i = t;
}
};
class A {
private:
int i;
int j;
public:
int geti() {
return i;
}
A(int a, int b ){
i = a;
j = b;
}
};
int main() {
A a(2,3);
B(1,a);
return 0;
}
不完全类型(incomplete type)只能以有限方式使用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。
#include<iostream.h>
#include<stdio.h>
#include <conio.h>
class A;
class B {
private:
int i;
A &a;
public:
B(int t, A &b):a(b){
i = t;
}
};
class A {
private:
int i;
int j;
public:
int geti() {
return i;
}
A(int a, int b ){
i = a;
j = b;
}
};
int main() {
A a(2,3);
B(1,a);
return 0;
}
2013-09-22
展开全部
1、类体内包含有数据成员和成员函数。还可以包含另一个类的对象和指向对象的指针。
2、在类体内允许对成员函数进行定义,但是不允许对数据成员进行初始化。
3、一般地,在类体内先说明公有函数,再说明私有函数。
4、习惯于将类的定义的说明部分或整个定义部分放在一个头文件中。这样作是为了以后引用起来比较方便。
2、在类体内允许对成员函数进行定义,但是不允许对数据成员进行初始化。
3、一般地,在类体内先说明公有函数,再说明私有函数。
4、习惯于将类的定义的说明部分或整个定义部分放在一个头文件中。这样作是为了以后引用起来比较方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询