w3周日__C++里有太多微妙到蛋疼的细节。比如构造函数也能搞这么多幺蛾子

?问题提出

主要是在VC++ 2015里经常提示莫名其妙的编译错误。

分析一下,为什么Java里构造函数这个问题很简单:

  1. C++里对象类型不止有按引用传递,还可能拷贝传递。所以有时候得提供拷贝构造函数。(这与 重载赋值运算符= 貌似目的是一样的?都是为了能根据1个instance构造第2个instance)

如果没显式自定义一个拷贝构造函数,那么编译器默认提供的是“浅拷贝”。所以:当成员变量含对象的指针类型时,必须重写拷贝构造函数。——> 重写几乎成了必然?

2. C++里有初始值、初始化列表 这2种东西。

3. 默认提供的构造函数、拷贝构造函数 还能通过 “= delete” 删掉。也不知道啥情形下要这么做。(吐槽:C++把一大堆细节都用语法糖添加到语法里,使得语法相当的杂,操蛋)

4. 虽然C++规范只有一个,但是实现该规范的编译器又好几种产品:MSVC, G++, Clang……而且它们各自有一堆版本,对C++标准的支持、增补各不相同,更别说还存在一些静态代码检查的规则也不尽相同,给的提示信息我也经常看不懂……只能拿去Google然后又面临一堆语法细节,欲仙欲死。。。



? “默认初始化”

1. 如果未显式提供一个构造函数的话,那么编译器会提供一个默认的无参构造函数("default constructor")。

《C++ Primer》:

还是百度知道好懂点:——> 设计段测试代码,debug看一下就知道了。



?答案在此

 C/C++变量的自动初始化

原文地址:https://www.cnblogs.com/nanlan2017/p/9194178.html

时间: 2024-10-30 02:11:07

w3周日__C++里有太多微妙到蛋疼的细节。比如构造函数也能搞这么多幺蛾子的相关文章

Android实习周记:第三周,工作里重复太多,新鲜太少,怎么办?

这周实习工作中我的心情变化较大:烦躁->思考->顿悟 烦躁篇 看来人休息久了身体真的会自己变懒,上周末休息了几天,这周早上工作有两天都差点迟到,还好有小伙伴叫醒.看来放假真的不能太疯玩. 前两周已经把我们组的这个项目基本流程熟悉的差不多,也改了一些bug,进行了一些维护.所以这周起来我觉得我应该可以真的做一些东西了,比如说负责实现某个模块,或者根据UI做界面什么的,"按理说该干些真正的活了吧",我这么想. 结果,师兄给我布置的任务是继续维护项目,知道真相的我眼泪掉下来.一边

w3周日__继续思考昨晚未尽的疑问(指针vs引用)

这波要针对上篇分析里 标红的问题(成员变量用 T,T&啥情况)继续思考, 要学习以下材料: 1. 知乎上:用指针还是引用 2. StackOverflow上的相关问题 https://stackoverflow.com/questions/12728794/why-should-i-use-reference-variables-at-all 3. Google:  What  is reference in Memory ;   When to use it; 4. String类型好像很特殊

.NET破解之太乐地图下载器【非暴破】

不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, 有人说破解不应该程序员干的事,我回复我不是程序员: 有人说.NET程序太没难度了,去破安卓,后来我真开始研究起安卓来: 有人说能不能把支付宝破了,我没回答. 虽然很忙,时间少,但每天晚上都要抽些时间来关注52论坛,关注破解:虽然并没有从破解中获取物质利益,但我愿意将自己的心得或作品分享给大家.不管怎

在docker里部署网络服务

之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干活的时候突然断网了.一下傻掉了,以前都是连内网,从来不断的.这次连了一个反向隧道,居然断了,傻眼了. 再连回去,发现docker ps里还有进程,好办,docker attach这个进程,就又进去了. 如果没有找到进程,就只要docker commit存一下,然后再docker run拉起来继续 如

《当迷茫在大学里泛滥成灾》——李开复

------------------------------------ 同学们: 你们过得还好吗? 本来这是一封早就应该写的信,有许多话早应该说,但是我没有去写,没有去说.不是不想,而是我知道你们非常讨厌一个空洞的说教者.所以,我在等待,等待你们自己去体会生活,等待你们来自生活的感觉,等待你们自己对生活态度的反思.这些东西只是一个时间的问题,在一学期已经结束的时候,在你们又开始新学期的时候,我觉得,这封信可以写了,这些话可以说了,我相信你们应该有了和我共同的某种感受,思想应该可以达到一种深度.

[Swift]Day07:柯里化

Swift 中的柯里化 新手上路的学习笔记,如有错误还望指出,不胜感激. 上集:理论预备 在学习柯里化的过程中接触到了三个有趣的概念,在此和各位分享一下. 偏函数 (Partial Function) 偏函数是只对函数定义域的一个子集进行定义的函数,是一个数学概念. 偏函数定义如下: 从输入值集合 X 到可能的输出值集合 Y 的函数 f (记作f:X→Y) 是 X 和 Y 的关系,若 f 满足多个输入可以映射到一个输出,但一个输入不能映射到多个输出,则为偏函数. 换句话说,定义域 X 中可能存在

android greendao的外部封装不太友好。

https://github.com/greenrobot/greenDAO 下载下官网的示例,有完整的封装版本,但自已封装是碰到很多问题. 因greenDao的Master和Session中很多方法完全是隐藏的,只属于此类. 很多信息也是隐藏的. 只能基于继承此两类来实现(像官网示例一样) 想通过公有方法来实现最基本的一个demo也碰到很多坑. 这是示例 Master.DevOpenHelper dbhelp=new Master.DevOpenHelper(this,"dbname"

ios项目里扒出来的json文件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #d12f1b } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #d12f1b } p.p4 {

Facebook在代码里下毒,百度身受重伤。。。

白首相知犹按剑     前两天看到有朋友分享说,WordPress停用了react.今天,在逛知乎时看到了另一个问题别细看这图,我赌你看不懂... 嗯...用人话来说就是百度内部要求他们的程序猿不要再使用一个叫 React的开源产品的代码了.而且,现有的已经使用过这些代码的产品要改写!(其实几乎有很多要重写了) 有朋友会问 React 是毛啊?这是 Facebook 搞的一套贼好用的前端开发工具,它能提供一些很好的效果,别的开发者可以免费拿来在它的基础上去做自己的产品,为了更多人更好的使用它,F