首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

类在程序中的初始化顺序,该怎么处理

2012-02-04 
类在程序中的初始化顺序我建立了一个单元,在里面写了一个类,用于保存公共变量。该单元的CPP文件里有一些类

类在程序中的初始化顺序
我建立了一个单元,在里面写了一个类,用于保存公共变量。该单元的CPP文件里有一些类的函数定义,包括构造函数和析构函数,代码如下

C/C++ code
__fastcall Common::Common(){    //一些代码}//---------------------------------------__fastcall Common::~Common(){    //一些代码}//---------------------------------------Common Cmn;//这句无法设断点


用断点调试发现,程序是先执行这个构造函数,然后才执行工程主CPP文件的WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)函数,随后对窗体进行初始化

从设计意图上讲这样能满足要求,但是不知道程序初始化这些自定义类的顺序是怎样的,看起来是在main函数之前就执行了。
还有用该类定义一个对象的那句也无法设置断点,不知原理是什么?如果执行不到那一句,又怎样执行了构造函数呢?

[解决办法]
"但是不知道程序初始化这些自定义类的顺序是怎样的"
最簡單的就是在每個函數裡加上
ShowMessage("XXX");
去看哪個先彈出來
[解决办法]
全程变量(类)的初始化是在main之前运行的,这个是由编译器决定的.
变量(包括类)的定义处是不能加断点的,如 int a;(这个是不能加断点的),也是编译器决定的.
[解决办法]
这里,你这个Cmn是全局变量,全局变量是先创建.(这个是王八的屁股,规定)
main函数只不过是程序的入口点仅此而已,没有其它的特权.

自定义类的顺序,这个.........基础的东西,不常用记不清了
全局变量或者全局常量,应该是按照定义的顺序初始化

热点排行