愿天天向上,愿学以致用,愿掌握生活
对象声明
上一篇 /
下一篇 2007-10-17 16:12:37 / 天气: 阴
/ 心情: 平静
/ 个人分类:C++ Primer
// file module0.C
// 定义fileName 对象
string fileName;
// ... 为fileName 赋一个值
// file module1.C
// 需要使用 fileName 对象
// 喔: 编译失败:
// 在module1.C 中fileName 未定义
ifstream input_file( fileName );
在C++中,程序在使用对象之前必须先知道该对象.这对"编译器保证对象在使用时的类型正确性"是必需的.引用一个未知的对象将引起编译错误.在本例中,由于在model1.C中没有定义fileName,所以该文件编译失败.
要编译model1.C,必须让程序知道fileName.
要编译model1.C,必须让程序知道fileName,但又不能引入第二个定义.我们可以通过声明(declaring)该变量来做到这一点.
// file module1.C
// 需经使用fileName 对象
// 声明fileName, 也即, 让程序知道它,
// 但又不引入第二个定义
extern string fileName;
ifstream input_file( fileName );
对象声明(declaration)的作用是使程序知道该对象的类型和名字.它由关键字extern以及跟在后面的对象类型以及对象的名字构成.声明不是定义,不会引起内存分配.实际上,它只是说明了在程序之外的某处有这个变量的定义.
虽然一个程序只能包含一个对象的一个定义,但它可以包含任意数目的对象声明.比较好的做法,不是在每个使用对象的文件中都提供一个单独的声明而,是在一个头文件中声明这个对象,然后再在需要声明该对象的时候包含这个头文件.按照这种做法,如果需要修改对象的声明,则只需要修改一次就能维持多个使用该对象的文件中声明的一致性.
收藏
举报
TAG:
对象声明