相关推荐
effective c++ 1-3学习笔记
effective c++ 学习笔记(一) 01 c++为一个语言联邦 c++可以视为一个由相关语言组成的联邦而非单一的语言。 C:c++仍然以c为基础; Object-oriented C++:这是面向对象设计在c++的实施; Template C++:c++的泛型编程; STL:STL为一个template 库; 02 尽量使用const,enum,inline 替换#define #define A 1.64 // const double A=1.64; 原因: A也许从为被编译器看见,可能
《Effective C++》学习笔记(1~3)
《Effective C++》学习笔记(1~3) 导读 explicit关键字修饰构造函数,禁止隐式类型转换; Widget w1 = w0; //等号语法在此起到调用拷贝构造函数的作用,而不是赋值操作符; 条款01:视C++为一个语言联邦 参数传递时,内置类型更适合值传递,用户自定义类型更适合const引用传递; C++包含四个语言层次:C、object-oriented C++、te
《Modern Effective C++》学习笔记3 转向现代C++
条款七:在创建对象时注意区分()和{} 大括号初始化的出现是为了进行统一初始化,实现一种从概念上可以用于一切场合的初始化,从以下例子中可以窥见: class Widget { ...... private: int x{0}; // 可行 int y = 0; // 可行 int z(0); // 不可行 } // 不可复制对象 std::atomic<int> ai1{0}; // 可行 std::atomic&l...
More Effective C++学习笔记(3)
当通过传值(by-value)方式捕获时,异常对象被拷贝了两次(第一次是异常传递时生成的一个临时对象,第二次是临时对象给catch的形参赋值)。,因为异常里面参数传递都是副本,传引用也不是为引用异常抛出前的原始对象,而是相较于by-value减少一次副本拷贝。,因为函数参数要求传入引用说明想修改引用的变量,结果变量是临时对象,即使修改了也是做无用功,所以编译器不允许;,因为异常catch匹配是顺序匹配(最先匹配的catch),不是最佳匹配。(2)对象做为异常被抛出与做为参数传递给函数相比,
《Effective C++》学习笔记 (3rd.尽可能使用const)
在对《Effective C++》的条款二:【尽量以const、enum、inline替换#define】 进行学习之前,个人认为非常有必要先学习条款三,也就是这一节【尽可能使用const】,毕竟学C的时候用#define,学C++又不怎么用,用的时候也仅仅是标准两句的人来说,const算得上是个陌生的关键字,你问什么叫标准两句?就是这个: #include<iostream> us...
More Effective C++ 学习笔记(3)
异常 为什么要使用exceptions? exceptions无法被忽略,如果一个函数利用设定状态变量或是利用返回错误码的方式发出异常信号,无法保证此函数调用者会检查错误码,于是程序 就会持续下去,从而远离错误点,但是有了exceptions,如果没有被捕获到,则程序会立刻终止。 条款9:利用destructors避免内存泄漏 即避免使用普通指针而去转向智能指针,或者说将资源封装到对象内,通常便可在异常出现时避免泄漏资源。 如下示例:GUI应用软件中的某个函数,必须产生一个窗口显示某些信息:
Effective C++学习笔记之第五章(3)
chapter 5 实现 item30 透彻了解inline的里里外外 1)当需要定义一个小型的的函数时,inline比宏要好,不容易出错,也不会有函数调用所需要的开销。编译器会直接将inline函数出现的地方直接用函数体替换,明显这样会引起代码膨胀、指令击中率低以及由此引发的一些效率问题。所有这个函数最好是被频繁调用,这样才会有我们预期的最小化代码膨胀问题和最大化程序的速度。 2)一般来说
Effective C++ 学习笔记(3)
尽量使用<iostream>而不是<stdio.h> scanf与printf不是类型安全的,而且不具有扩展性。 <iostream.h>不是标准C++头文件,命名空间是全局。<iostream>命名空间是str::。 转载于:https://www.cnblogs.com/DanielZheng/archive/2011/04/10/2...
Effective C++学习笔记 (3)
本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教。 尽可能使用const 从const在变量、对象、函数参数、函数返回值、成员函数上都可以应用。 1、 在变量和对象上: A、constchar *p = “abc” //数据const,指针non const char * const p = “abc”
《Effective Modern C++》学习笔记 - Chapter 3. 走向现代C++
《Effective Modern C++》学习笔记系列第三章索引
《Effective Modern C++》学习笔记 - Item 3: 理解decltype
More Effective C++学习笔记(3)-异常
主题 概要 C++ More Effective C++ 异常 编辑 时间 新建 20170113 序号 参考资料 1 More effective C++ C++中引进了异常机制,对比C语言程序员用错误码来标识错误,无疑更加优雅和健状。对于写出异常安全的代码,应该牢记遵循下面的准则。Item M9:使用析构函数防止资源泄漏对指针说再
Effective C++学习笔记之第四章(3)
chapter 4:设计与声明 item21:必须返回对象时,别妄想返回其reference 1)当程序员了解了pass-by-value的实现效率之后,就会根除其带来的种种邪恶。这样会不可避免的犯下一个致命的错误,那就是传递一个根本不存在的对象的引用。 考虑下面一个例子,假设有一个代表实数的类,里面包含了一个计算两个实数乘积的函数。如下: class Rational { public
Effective C++ 学习笔记3 继承与面向对象设计
1.
189


&spm=1001.2101.3001.11974&articleId=3923251&d=1&t=3&u=1ce552816a964a3187f489fe7ecafa09)

被折叠的 条评论
为什么被折叠?



