有道理C++标准不是死的,他也要考虑各种情况也是不断改进的。
這个说法非常合乎情理。
举个例子对于位域,如果使用class 定义估计大家都会感到非常别扭,位域这种数据从C开始,就是用的 struct 关键字C++并没有抛弃位域这种概念。
另外一个非常重要的事实是任何 C++编译器,都可以编译C代码;
C++标准库里有一个C标准库,和一个C++标准模板库
C++标准库,也没有抛弃C
实际上,任何一个C++编译器的实现往往也会实现1个C编译器,一个汇编器
因此,C++完全没有必要彻底抛弃C
C和C++联合編程,有时还和汇编联合编程实际上也是非常重要的;
不要忘记,操作系统往往只提供C API 作为接口。
因此C++一定程度的兼容C,是很必要嘚
C++编译器,能够编译C代码应该是写在标准里的吧,哪位比较清楚标准查查有没有这一条。
等价但当字符(字符串)赋值時,为了安全不能用初始化列表形式(第一种)。
你对这个回答的评价是
第一个是默认构造函数,这个函数什么都不做这个构造函數有可能被编译器优化掉。
第二个构造函数的写法和你说的那个写法不一样第一种写法中变量”初始化”的位置是在构造函数初始化列表,所以是真正的初始化你说的那种写法不是初始化,是赋值赋值和初始化是不一样的。
第一个构造函数不是一定要写的。。類中有哪些构造函数要根据类的用途来看。
你对这个回答的评价是
拥有丰富的软件开发经验。
第一个是默认的构造函数默认的构造函數是无参数的,
第二个是含有参数的构造函数
至于要不要每次都要这样写,这要看你的需要了如果你会用到默认的构造函数的,就要寫如果用不到的话,可以不写
你对这个回答的评价是?
请测试下列代码可以看到:
仅茬构造函数之中,有 delete this 的操作那么一切都在掌控之中。
可是若在析构函数中,有 delete this 的操作那程序运行将失控:递归导致死循环,最终造荿堆栈溢出递归源于:delete this 的操作将再次调用析构函数自身。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。