C++查缺补漏3,赶紧的
__FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明?
答案:可以,可以用_onexit 注册一个函数,它会在main 之后执行。
#include iostream using namespace std; int fn1() printf( "next.\n" ); return 0; int fn2() printf( "executed " ); return 0; int fn3() printf( "is " ); return 0; int fn4() printf( "This " ); return 0; int _tmain(int argc, _TCHAR* argv[]) _onexit( fn1 ); _onexit( fn2 ); _onexit( fn3 ); _onexit( fn4 ); printf( "This is executed first.\n" ); return 0; }输出结果为:
![image image](http://images.cnblogs.com/cnblogs_com/rollenholt/201203/201203282230096077.png)
The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.
类成员函数的重载、覆盖和隐藏区别?
答案:
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
(5)const的区别
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- c++语言截取字符串,详解C++ string常用截取字符串方法
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- C++滑动窗口算法_最短连续包含子串
- LeetCode82. 删除排序链表中的重复元素 II(c++详解)
- 深入理解C++11_c++ string char
- C++精通之路:map和set的介绍和有关oj题
- C++基本概念_c语言 c++区别
- C/C++ Qt QChart 绘图组件应用
- c++的链表-C++链表
- c++的链表-链表入门(C++)
- C++ 计时
- 【C++修炼之路】4. 类和对象(中):日期类实现
- C++ equel_range(STL equal_range)二分查找算法详解
- 基于一致性hash算法C++语言的实现详解
- 深入分析C++中执行多个exe文件方法的批处理代码介绍
- C++求斐波那契数的实例代码
- c++支持coroutine的简单示例
- VC++中HTControl的CHTButton按钮控件类用法实例解析
- 浅析C/C++中sort函数的用法