博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 小复习
阅读量:6190 次
发布时间:2019-06-21

本文共 960 字,大约阅读时间需要 3 分钟。

(1)当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。所以这里要注意函数里面的sizeof运算符。

 

(2)打印出当前源文件的文件名以及源文件的当前行号: cout << __FILE__ ; cout<<__LINE__ ; __FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。

 

(3)如何判断一段程序是由C 编译程序还是由C++编译程序编译的?

#ifdef __cplusplus    cout << "C++";#else    cout << "C";#endif // _cplusplus

 

(4)C++虚析构函数的作用:当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。

1 #include 
2 3 using std::cout; 4 using std::endl; 5 using std::cin; 6 7 class Base 8 { 9 public:10 Base() {}11 virtual ~Base(){ cout << "base detruction"; }12 };13 14 class Derived : public Base15 {16 public:17 Derived() : Base() {}18 ~Derived() { cout << "derived destruct\n"; }19 };20 21 22 int main(void)23 {24 Base* pBase = new Derived;25 delete pBase;26 27 cin.get();28 }
View Code
derived destructbase detruction

上面是输出,先调用派生类的析构函数,再调用基类的构造函数,满意。但是如果去掉了基类的virtual,那么输出为:

base detruction

可以看出没有调用派生类的析构函数,只调用了基类的析构函数。

转载于:https://www.cnblogs.com/jiayith/p/3985363.html

你可能感兴趣的文章
UIView延迟效果做出动画/UIView动画块
查看>>
测试过程中常用的linux命令之【删除指定的文件行】
查看>>
shell 截取文件名及扩展名
查看>>
原Oracle全球副总裁王亚卿任京东商城CTO
查看>>
php 选择排序
查看>>
yii模版中的判断方法
查看>>
Understand Java hasCode() method
查看>>
Linux学习---Day03
查看>>
输出表免杀方法
查看>>
内置函数(内嵌函数或内联函数)
查看>>
0301_互连模拟
查看>>
javascript 组成
查看>>
IOS UIScrollView 学习记录
查看>>
我的友情链接
查看>>
Linux命令——cut命令学习
查看>>
js call和apply方法小结
查看>>
“能耗大户”数据中心供配电系统
查看>>
awk
查看>>
我的友情链接
查看>>
RabbitMQ学习总结(3)——入门实例教程详解
查看>>