第一个问题是:如果一个函数跟对话框的类毫无关系,比如删除文件,有没有必要声明在头文件的对话框类的声明里面?是放在对话框类的声明里面比较好还是外面(全局)比较好?放在外面(全局)会不会造成不管这个类有没有初始化都会占用内存的问题?
class CTestDlg : public CDialog
{
public:
void DeleteSomeFiles();
...
}
还是
class CTestDlg : public CDialog
{
public:
...
}
void DeleteSomeFiles;第二个问题是:既然可以通过加两个冒号的形式调用全局函数,那声明成外部函数extern有什么必要呢?
比如:
class CTestDlg : public CDialog
{
public:
...
}
void DeleteSomeFiles();我可以在另外一个对话框里面直接使用::DeleteSomeFiles();,都不需要声明成外部的。
所剩分数全部奉上了。
class CTestDlg : public CDialog
{
public:
void DeleteSomeFiles();
...
}
还是
class CTestDlg : public CDialog
{
public:
...
}
void DeleteSomeFiles;第二个问题是:既然可以通过加两个冒号的形式调用全局函数,那声明成外部函数extern有什么必要呢?
比如:
class CTestDlg : public CDialog
{
public:
...
}
void DeleteSomeFiles();我可以在另外一个对话框里面直接使用::DeleteSomeFiles();,都不需要声明成外部的。
所剩分数全部奉上了。
解决方案 »
- 请教一个MFC 问题
- 请问VC是怎么设置断点的
- 请问:C语言本身是用什么编写的?用汇编写的编译器么? MS的VC++6.0这个软件 可能是用什么语言编写的?
- 如何获得三个线程的各自运行时间及总时间呢?
- 如何删掉msflexgrid控件中的一行??急急!!!
- 怎样对CDC memDC内存区的内容进行读、写等操作??????
- 高分:谁知道如何在2000 Server中重新安装管理工具中的组件服务程序,我的组件服务启动不了,得重装,找不到重装的地方,多谢!
- 如何遍历对话框中所有的控件问题
- 关于双缓冲问题 有代码 请前辈帮看看
- 用显示链接DLL时,如何使用DLL中的类?
- 【求助】请教有关夜间图像处理
- activex嵌套activex问题
我常将要用到的“全局”变量、函数全部放到一个自定义的类中,然后声明这个类的变量为全局变量,这样到处都可以使用里面的函数了,但这样做是个不好的习惯,可以按照1楼那样,把这个变量声明在app类中。
你把它定义为全局函数,在没有调用的时候应该也不会占用额外的内存。
至于你是要放到对话框类中,还是全局,要看你的应用了,如果只是这个对话框用,那我看最好是放到对话框的类中,如果是多个地方用,就声明成“全局”的第二个问题:
如果你不用extern声明的话,那你就必需包含那函数声明的头文件,否则你调用它肯定会编译不过。使用extern声明,是告诉编译器,这个函数是存在的,只不过不是在当前的程序段中而已