![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试准备
文章平均质量分 70
Neil_zk
这个作者很懒,什么都没留下…
展开
-
[C++ Effective]第3章 资源管理
条款13:以对象管理资源void f(){ InvestMent* pInv = createInvestment(); ... delete pInv;}对于上述情况,可能存在很多时候无法调用delete进行资源的释放。1、过早的遇到一个return语句;2、delete在循环中提前遇到break或continue;3、遇到抛出异常的情况。因此为了确保createInvestment返回的资源总是被释放,需要将资源放进对象内,当控制流离开函数f,该对象的原创 2022-03-10 21:18:44 · 867 阅读 · 0 评论 -
[Effective C++]第2章构造/析构/赋值运算
条款05 了解C++默默编写并调用那些函数如果自己没有声明,那么C++会为类声明一个构造、一个copy构造、一个析构和一个赋值运算符重载。这些函数都是public inline的。default构造函数和析构函数主要是给编译器一个地方来放置调用基类和non-static成员变量的构造函数和析构函数。编译器产出的析构函数是non-virtual。而copy构造和=运算符重载只是单纯的将源对象的每一个non-static成员变量拷贝到目标对象。当遇到一下三种情况,必须自定义=赋值重载运算符:1、类中原创 2022-03-03 23:40:55 · 433 阅读 · 0 评论 -
[C++ Primer Plus]第14章C++中的代码重用
私有继承使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不再成为派生类对象公有结构的一部分,但可以在派生类的成员函数中使用他们。私有继承将对象作为一个未被命名的继承对象添加到类中。//包含版本//初始化列表进行对象初始化Student(const char* str, const double* pd, int n):name(str), scorts(pd,n){}double Student::Average()const{ i原创 2022-03-03 19:05:55 · 544 阅读 · 0 评论 -
[C++ Primer Plus]第13章 类继承
class TableTennisPlayer{private: string firstname; string lastname;public: TableTennisPlayer(const string &fn="none", const string& ln="none");};TableTennisPlayer::TableTennisPlayer(const string &fn="none", const string& .原创 2022-03-03 17:15:01 · 456 阅读 · 0 评论 -
[Effective C++]
1、除非有一个非常好的理由允许构造函数被用于隐式类型转换,否则应该把它声明为explicit2、如果一个新对象被定义,那一定有个构造函数被调用,不可能调用赋值操作。如果没有新对象被定义,就不会有构造函数被调用,那么就是赋值操作被调用Widget w1; //调用默认构造Widget w2(w1); //调用拷贝构造w1 = w2; //调用赋值Widget w3 = w2; //调用拷贝构造...原创 2022-03-02 22:59:51 · 148 阅读 · 0 评论 -
[C++ Primer Plus]第十章使用类
以下运算符只能通过成员函数进行重载:=、()、[]、->class Time{ int val;public: friend Time operator* (const Time &t, int const val);};类的自动类型转换和强制类型转换:使用ecplicit可以关闭构造函数的自动类型转换函数,但是任然允许强制类型转换class Stonewt{ explicit Stonewt(double lbs); //不允许隐式类型原创 2022-03-02 10:32:59 · 112 阅读 · 0 评论 -
[C++ Primer Plus]第十章 对象和类
作用域为类的常量:第一种方式是在类中声明一个枚举:class Dog{private: enum{ Months = 12}; double cost[Months];}第二种方式是在类中定义常量的方式——使用关键字static:class Dog{private: static const int Months = 12; double cost[Months];}作用域内枚举:enum egg{Small, Medium};e原创 2022-03-02 00:34:50 · 173 阅读 · 0 评论 -
[C++ Primer Plus]第九章内存模板和命名空间
单独编译不要将函数定义或变量声明放在头文件中。例如如果在头文件包含一个函数定义,然后在其他两个文件中包含该头文件,则同一个程序将包含同一个函数的两个定义,除非函数是内联的,否则这将出错。头文件中常包含的内容为:1、函数原型;2、使用#define或const定义的符号常量;3、结构声明;4、类声明;5、模板声明;6、内联函数。结构声明不创建变量,只是在源码文件中声明结构变量时,告诉编译器如何创建该结构变量.模板声明不是将被编译的代码,他们指示编译器如何生成与源代码中的函数调用相匹配的函数原创 2022-03-01 23:35:10 · 233 阅读 · 1 评论 -
[C++ primer plus]第八章 函数探幽
函数模板显示具体化显示实例化 隐式实例化 decltype关键字右值引用内联函数原创 2022-03-01 18:37:08 · 259 阅读 · 0 评论 -
[C++ primer plus]第七章 函数和数组
指针常量与常量指针指针数组与数组指针指针函数与函数指针函数指针数组指向“指向函数指针的指针“的指针使用typedef简化函数指针原创 2022-03-01 10:48:24 · 106 阅读 · 0 评论 -
[C++ Primer Plus] 第二章 开始学习C++
C++原创 2021-12-02 18:58:57 · 96 阅读 · 0 评论