摘要: 记录一下第二章的第一部分默认构造函数的学习笔记: 一、默认构造函数 1.默认构造函数的生成: 概念上只要类未定义任何构造函数并且真正需要默认构造函数(被调用)时,则编译器会自动为其合成一个默认构造函数。而实际上编译器只为有意义nontrival的类合成构造函数。而无意义的类编译器为其合成无意义的默认 阅读全文
posted @ 2021-06-16 17:39 放不下的小女孩 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 记录一下第一章关于对象中的笔记。 1.指针类型 众所周知所有的指针都是存放着一个地址他们在同一个机器中占用的内存相同,而指针类型则是告诉编译器如何解释指针所指地址中的内存内容和大小。所以 ①一个类型为void*的指针只能获得地址,而不能对其指向的内容进行操作。 ②转换cast仅是一种编译器指令,它仅 阅读全文
posted @ 2021-06-16 11:27 放不下的小女孩 阅读(24) 评论(0) 推荐(0) 编辑
摘要: Initialization order The order of member initializers in the list is irrelevant: the actual order of initialization is as follows: 1) If the construct 阅读全文
posted @ 2021-05-31 20:52 放不下的小女孩 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 这几天在看effective C++3rd,这本书算是比较经典的一本入门C++的书了。虽然年代比较久远书中讲的好多模式已经被的新特性取代了,但是从这些旧的模式中可以了解到一些C++新特性设计的初衷,也算是窥探到了C++发展的一角吧。 所以在此记录一下学习过程中那些被C++11新特性取代的旧模式吧(C 阅读全文
posted @ 2021-05-21 17:45 放不下的小女孩 阅读(272) 评论(0) 推荐(0) 编辑
摘要: C++Primer第十九章的动态类型转换部分讲的不是很清楚,于是自己查cpp的官方手册总结一下。 dynamic_cast < new-type > ( expression ) 动态类型转换是可以安全的在继承体系将指针和引用进行向上、向下和横向的转换。其表达式的类型为运行时的动态类型。具体功能如下 阅读全文
posted @ 2021-05-18 16:29 放不下的小女孩 阅读(2967) 评论(0) 推荐(0) 编辑
摘要: 学习完C++Primer第五版第十七章第三小节正则表达式后小结一下: 1、regex的匹配机制 不能直接确定输入序列中总共有多少表达式正确匹配给定的正则表达式。 注意:不要误认为match的成员函数size()返回的是匹配值的数量,匹配成功时size返回的是匹配的子表达式的数量+1(此处C++Pri 阅读全文
posted @ 2021-05-12 22:52 放不下的小女孩 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造函数的第一个参数要求是自身类型的引用,但是没有一定要求具有底层const属性即对常量的引用,但是使用时最好加上const,原因是我们可能在某些“不知道”的情况下对常量对象调用拷贝构造函数。 来看一个例子 class HasPtr{ public: HasPtr(const std::stri 阅读全文
posted @ 2021-04-26 18:47 放不下的小女孩 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 在学习《C++primer 第五版》(中文版)中第12章动态内存与智能指针的时候遇到了一个习题,练习12.13: 练习 12.13:如果执行下面的代码,会发生什么? auto sp=make_shared<int>(); auto p=sp.get(); delete p; 上述代码创建了一个指向i 阅读全文
posted @ 2021-04-25 17:44 放不下的小女孩 阅读(781) 评论(1) 推荐(0) 编辑
摘要: 在学习《C++primer 第五版》(中文版)中第七章类的时候遇到了一个有意思的习题,原题如下: 练习7.43:假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认的构造函数。定义类C,C有一个Nodefault类型成员,定义C的默认构造函数 本题的答案很简单,直接利用初 阅读全文
posted @ 2021-04-14 14:54 放不下的小女孩 阅读(382) 评论(0) 推荐(0) 编辑