C++中如果要用的类定义在使用之后,该怎样声明?

例题如下:
#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 ;
}

这个声明,有时称为前向声明(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;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-22
1、类体内包含有数据成员和成员函数。还可以包含另一个类的对象和指向对象的指针。
2、在类体内允许对成员函数进行定义,但是不允许对数据成员进行初始化。
3、一般地,在类体内先说明公有函数,再说明私有函数。
4、习惯于将类的定义的说明部分或整个定义部分放在一个头文件中。这样作是为了以后引用起来比较方便。

C++中如果要用的类定义在使用之后,该怎样声明?
这个声明,有时称为前向声明(forward declaraton),在声明之后、定义之前,类A是一个不完全类型(incompete type),即已知A是一个类型,但不知道包含哪些成员。不完全类型(incomplete type)只能以有限方式使用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是...

c++用class定义的类放到了main函数的后面,如果提前声明类?
可以这么定义么??一般函数可以提前声明,但是类的话,好像不行,不然会报找不到类的错误,建议复制黏贴到main函数之前,或者是直接声明一个头文件,然后用#include<>引用

C++,如何在类里声明一个类,并且正确的使用他
首先声明一个类public class A \/\/public 是类的属性 也可以是private protect{}然后定义他 class A {};然后使用它一般就是用类来声明实例来使用A a=new A();

C++中对自定义函数的声明,放main内还是外
如果说你的程序中除了主函数外的其他函数也要调用你定义的函数,那么你放在主函数之外,其他函数之前,声明一次即可; 如果只有主函数需要调用,那么放在main函数之内就行~

C++中对自定义函数的声明,放main内还是外,在含类的程序中,貌似只能在...
一般放在函数外,调用之前。放在哪跟有类没类没有直接联系。实践中一般将函数声明、类的定义放在头文件中。而定义放在单独的源文件(.cpp)。如果有哪个源文件中用到了头文件中声明的函数或类,只需#include “***.h”将头文件包含进来。

C++ class基础知识
类方法通常定义在类体外部,使用域解析符.来访问类成员。类成员和类方法有不同的访问权限:public、protected和private。public成员可从类内外访问;protected成员仅在类和派生类内可访问;private成员仅在类内可访问。构造函数用于创建和初始化对象,需要被声明为public,且允许重载。初始化列表形式可用于对...

c++ 如何定义一个任何类型的变量? 定义之后又如何使用?
可以使用C++中的联合,可以向下面这样定义union anyting{ int ival; double dval; char chval;...}; 使用时可以anything myval;myval.ival = 5; \/\/这时myval包含的是一个int类型的变量值为5myval.dval = 3.1415926 \/\/这时myval包含的是一个double类型的变量值为3.1415926,之前的int...

c++类的定义与使用
具体如下。C++是一款面向对象的编程语言,而使用类来进行数据隐藏,将函数当做接口,是一种面型对象很有效的实现方法。类的定义与结构体有些类似,用关键字c类对象的默认访问控制为privite型,因此在定义时,我们可以省略privite符号,上例为了表示清晰故加上了privite。在源文件中定义函数时,需要加上...

C++调用类头文件为什么只需要include声明部分而不需要类的定义部分
1. 编写代码,2. 编译器进行编译,compile 3. 编译器进行连接。4. 执行。由于C++语言支持多文件工程。需要经过编译和连接的过程。打个比方,你要建造一架飞机,需要发动机,机翼,机身,尾翼,起落架。你可以把这几个部分交给专门的厂商去制作,这就是编译过程。这么多零件交给你,你只需要组装起来就...

c++ 类的定义必须放在main函数前么
如题,类是否不可以在使用之前声明,在使用后定义?答.不可以.原因来剖析一下:你通过声明class Cube; 放在main函数内部 但是你使用该类定义了三个对象Cube c1,c2,c3;你要明白一点.class Cube;这个声明.它仅仅是告诉编译器了哪些信息 它仅仅告诉了编译器,Cube是个类而已,别无其他.因此Cube c1,c2,...

相似回答