愿天天向上,愿学以致用,愿掌握生活

对象声明

上一篇 / 下一篇  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: 对象声明

 

评分:0

我来说两句

日历

« 2024-05-22  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 21620
  • 日志数: 30
  • 建立时间: 2007-10-02
  • 更新时间: 2007-11-14

RSS订阅

Open Toolbar