在函数前加Afx和::以及函数后加const的意义?
2012-04-25 14:36
459 查看
1、Afx是Application Framework的意思,Afx函数是一些全局函数,加上x是为了读起来更响一些。
2、在函数的末尾加上const,
例如int Func(int i) const;
Func()是类的成员函数才能这样用,表示这个函数不改变成员变量的值。同时用const结尾的成员函数只能调用其他const结尾的成员函数。因为其他函数并不能保证同样不修改类的成员变量。
3、在MFC程序里看到在一个类的成员函数里引用了一个API,并且在前面加上::,但又没有类名。
这个类也没有定义和API同名的成员函数,怎么回事呢?
"::"这是作用域定义符,加::的是全局函数,一般就是API(win32 SDk)函数。因为MFC封装的函数很多和API函数名字一样,如果不加全局描述符,在类里调用的就是MFC里的类成员函数。如果这个类以及它的父类都没有同名函数,那么不加::也是可以调用API的。如果在程序中有个和成员函数同名的全局函数,那么添加::后调用的是全局函数。
值得注意的是,API(win32 SDk)和一大堆afx开头的函数,它们都是全局函数。
2、在函数的末尾加上const,
例如int Func(int i) const;
Func()是类的成员函数才能这样用,表示这个函数不改变成员变量的值。同时用const结尾的成员函数只能调用其他const结尾的成员函数。因为其他函数并不能保证同样不修改类的成员变量。
3、在MFC程序里看到在一个类的成员函数里引用了一个API,并且在前面加上::,但又没有类名。
这个类也没有定义和API同名的成员函数,怎么回事呢?
"::"这是作用域定义符,加::的是全局函数,一般就是API(win32 SDk)函数。因为MFC封装的函数很多和API函数名字一样,如果不加全局描述符,在类里调用的就是MFC里的类成员函数。如果这个类以及它的父类都没有同名函数,那么不加::也是可以调用API的。如果在程序中有个和成员函数同名的全局函数,那么添加::后调用的是全局函数。
值得注意的是,API(win32 SDk)和一大堆afx开头的函数,它们都是全局函数。
相关文章推荐
- 卷积神经网络(一):常见的激活函数以及其意义
- const char*, char const*, char*const的区别以及静态和非静态变量、函数的总结
- 函数声明符的右值、左值引用以及const引用
- 函数参数名后面加const的意义
- CPP-基础:非静态成员函数后面加const,以及mutable修饰成员变量
- 定义函数时,后面加const意义
- C++函数后加const的意义
- C++函数后加 const 的意义
- C++ 关于static_cast reinterpret_cast dynamic_cast 以及 const_cast 用于类型转换的函数使用 20180315 day7
- C++ 成员函数后面加const,没有const,以及使用的区别
- C++函数后加const的意义
- const可以出现在函数头,参数列表,以及参数尾
- const可以出现在函数头,参数列表,以及参数尾
- const引用和函数占位参数遇上默认参数以及内联函数
- listen函数里面backlog的意义以及各种情况
- (转)C++函数后加const的意义
- Delphi 中 函数参数中的 const 修饰符的本质以及注意事项
- 【转载】用const修饰函数 以及引起的附加限制:const函数不能调用非const的函数或引用非const参数
- 用const修饰函数 以及引起的附加限制
- C++函数后加const的意义