随笔分类 - Effective C++学习笔记
Effective C++
摘要:这一节基本讲述的是将资源放进管理对象,防止忘记释放资源。1.一般New和Delete使用场景void fun() { SimpleClass* pSimpleClass1 = new SimpleClass; .... // 如果这中间发生异常返回,则delete pSimpl...
阅读全文
摘要:引言: 在深拷贝和浅拷贝的理解中,我们知道了“拷贝构造函数”一词,并且也了解了它的构成。A(const A& r); // 形式有多种,在这里只列出一个因此,在值传递的应用场景里,我们可以写出以下的拷贝构造函数: 1 #include 2 #include 3 using namespace s...
阅读全文
摘要:一、何谓“自我赋值”?1.1.场合一 直接赋值 w = w; 1.2.场合二 同一数组 a[i] = a[j]; 1.3.场合三 指针 *px = *py; 1.4.场合四 同一继承体系 class Base{...}; ...
阅读全文
摘要:差不多最经典的就是这个了:x = y = z = 15;解读为:x = (y = ( z = 15));如果没有返回值,上述代码就不能通过编译。其实看到标题就差不多明白这一条了,但是为什么连续赋值时最好让其返回一个reference to *this呢?我们来举一个例子:如果我们定义一个类R:R r...
阅读全文
摘要:在确保对象在使用前已先被初始化这一条款的编码实践中,作者为我们总结了三条经验,它们分别是: ------------------------------------------------------------------------------------------------------...
阅读全文
摘要:这章非常容易理解:因为C++并不禁止析构函数吐出异常,只是不鼓励这样做而已。一、原因假设我们有10个装着鸡蛋的容器,而且现在我们还想着把它在析构函数打烂。class Egg {public : ... ~Egg() { // 这里可能出错,导致蛋打不烂 }}...
阅读全文
摘要:引言: 我们都知道类的一个很明显的特性是多态,比如我们声明一个水果的基类:class Fruit {public: Fruit() {}; ~Fruit(){};} 那么我们根据这个Fruit基类可以派生出以下的子类: class Apple:public Fruit{}; c...
阅读全文
摘要:■本文内容■□第一节 在条款五的讲解中,我们已经知道编译器是聪明的家伙,它会帮助你生成类的构造函数、析构函数、一个copy构造函数和一个赋值运算符。有时真的要感谢编译器所做的这一切,因为我们确实需要如此。但有的时候这一切又会给我们带来麻烦,本条款的介绍主题是麻烦的产生及如何解决。□第二节 ...
阅读全文
摘要:编译器是个十分敬业的工作者,不但为你编译代码,甚至为你生成代码,不可思议吧。本文主要介绍编译器究竟会为我们生成和调用哪些代码。如果问什么样的类是空类?也许你会说下面的类就是空类。class A{};好吧,我也是这么认为的。没有构造函数怎么创建对象?事实上编译器会自动地把A的定义转为下面这样的代码。c...
阅读全文
摘要:引言:什么是虚函数其实从虚函数说起,就得追溯到虚函数的定义:简单的来说,虚函数的定义可以表述为以下的概念:定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数语法:virtual 函数返回类型 函数名(参数表) { 函数体 }用途:实现多态性,通过指向派生类的基类指针,...
阅读全文
摘要:三、尽可能使用const经典面试题: ①说出const的至少3个作用 ②const char* p = x; char* const p = x; 说出上处两个const的作用。说到这,其实最好是说一下const的语义:1、const语义 1).代替#define 2).使某个对象(...
阅读全文
摘要:一、尽量以const,enum,inline替换#define(或以编译器代替预处理器)1)#define在N-Orca中的应用2)Const替换 #define首先经常会 #define ASPECT_RATO 1.63由于记号ASPECT_RATO有可能不被计入记号表内,所以当编译发生错误时,可...
阅读全文
摘要:一、C++介绍开始时,C++只是在C的基础上加上面向对象的特性。最初名字:C++ with Classes目前:主要包括4个主要组成部分1)C区块、语句、预处理、内置数据类型、数组、指针等2)Object-Oriented C++这部分封装了面向对象的部分,包括:Class(构造函数、析构函数)、封...
阅读全文

浙公网安备 33010602011771号