c++ 类的定义必须放在main函数前么

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:12:58
如题,类是否不可以在使用之前声明,在使用后定义?
#include <iostream>
using namespace std;

int main()
{
class Cube;
Cube c1,c2,c3;
cout<<"请输入长 宽 高"
return 0;
}

class Cube
{
public:
void in();
void out();
private:
int length;
int width;
int height;
};

怎样声明呢,这样声明通不过啊

我来回答下把

如题,类是否不可以在使用之前声明,在使用后定义?
答.不可以.

原因来剖析一下:
你通过声明class Cube; 放在main函数内部
但是你使用该类定义了三个对象Cube c1,c2,c3;
你要明白一点.class Cube;这个声明.它仅仅是告诉编译器了哪些信息
它仅仅告诉了编译器,Cube是个类而已,别无其他.
因此Cube c1,c2,c3; ,你这样来定义三个对象,由于编译器只知道它是一个类而已,其他定义的信息他什么都不知道,因此它也就不能创建对象了
所以说,不可以,如果不好理解,那么,也不说别的,就说你创建对象的时候
总要调用构造函数来初始化把,编译器就不知道什么构造函数的概念怎么进行初始化呢

明确一点,对类声明,仅仅是告诉编译器她是一个类而已.别无其他
就好象类的组合里还是前向引用有声明类的用法,我忘了,你可以看看那章

肯定要先声明,后定义
没有定义的类只能定义类的指针对象。