黑马c++
1.返回引用变量不能返回局部变量,局部变量在栈里面由编译器管理回收。
2.结构体改了变量后打印却出现不同??诡异事件。
printf的问题
3.常量也可以更改,通过指针。
4.返回引用就是说跟形参一样,不用复制值直接传递引用。接收时也要用引用接收,否则还是会复制,不能返回局部对象的引用。
5.c++常量对象不可以更改属性。但java是可以变属性。
6.友元函数那些是什么东西?对象属性在对象创建时默认调用构造函数?那指针对象会吗?day4-10
7.拷贝构造的编写,调用。这老师好菜。
8.目前感觉确实java的引用类型传进传出函数是都是用的引用传值,而在类里面的引用类型变量要用指针,因为引用必须初始化。
9.智能指针里面的->和*重载需要考虑到编译器的一个优化,就是->->优化成了->。这样再考虑重载函数返回值是什么。
10.c++的=不一定只是像java一样引用类型只改变指向,它直接调用拷贝构造,默认浅拷贝。这里似乎很复杂还涉及深浅拷贝???拷贝构造,可以自己重载。所以java的引用类型等于更像是c++里面的修改指针指向。
11.返回值尽量都是引用类型比较好,跟java里面正好对应上。但是要检查返回值的来源不能是栈上的变量,java引用类型只放堆里面。
12.需要搞清楚=做了什么,拷贝构造又做了什么。看10。
13.指针!=NULL和java里面差不多,c++中指针=null表示指针归0,但是java引用类型等于null表示它指向空。但是java里面几乎不会用到这个。而c++析构函数会用到防止变成悬空指针。这里如果释放同一个两次会出bug!!会出现很多问题,建议重载=。
14.目前看c++应该是=那一行最前面有类名表示调用拷贝构造。没有表示=重载函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)