c++中,种 只能定义在主函数的前面吗
c++中,类 只能定义在主函数的前面吗?
能不能像函数那样,在主函数的后面定义,然后在使用前声明下再使用?
谢谢
------解决方案--------------------
前置声明,参考C++ Primer:
我们也可以声明一个类但是井不定义它例如
这个声明向程序引入了一个名字Screen 指示Screen 为一个类类型
但是我们只能以有限的方式使用已经被声明但还没有被定义的类类型,如果没有定义类,
那么我们就不能定义这类类型的对象。因为类类型的大小不知道,编译器不知道为这种类类型的
对象预留多少存储空间;
但是我们可以声明指向该类类型的指针或引用,允许指针和引用是因为它们都有固定的大小,这与
它们指向的对象的大小无关。但是因为该类的大小和类成员都是未知的,所以要等到完全定义了该类
我们才能将解引用操作符* , 应用在这样的指针上或者使用指针或引用来指向某一个类成员。
例如:
这里Screen 只有声明没有定义:
能不能像函数那样,在主函数的后面定义,然后在使用前声明下再使用?
谢谢
------解决方案--------------------
前置声明,参考C++ Primer:
我们也可以声明一个类但是井不定义它例如
class Screen; // Screen类的声明
这个声明向程序引入了一个名字Screen 指示Screen 为一个类类型
但是我们只能以有限的方式使用已经被声明但还没有被定义的类类型,如果没有定义类,
那么我们就不能定义这类类型的对象。因为类类型的大小不知道,编译器不知道为这种类类型的
对象预留多少存储空间;
但是我们可以声明指向该类类型的指针或引用,允许指针和引用是因为它们都有固定的大小,这与
它们指向的对象的大小无关。但是因为该类的大小和类成员都是未知的,所以要等到完全定义了该类
我们才能将解引用操作符* , 应用在这样的指针上或者使用指针或引用来指向某一个类成员。
例如:
这里Screen 只有声明没有定义:
class Screen; //声明
class StackScreen {
Screen *stack; //ok:指向一个Screen对象
};