07 2018 档案
摘要:注意派生类构造函数的写法。 1 #include <iostream> 2 3 using namespace std; 4 5 enum COLOR { Red, Green, Blue, Yellow, White, Black, Brown }; 6 7 class Animal 8 { 9
阅读全文
摘要:本文出自图书 > 深入理解C++11:C++ 11新特性解析与应用 3.3 右值引用:移动语义和完美转发 3.3.1指针成员与拷贝构造 对C++程序员来说,编写C++程序有一条必须注意的规则,就是在类中包含了一个指针成员的话,那么就要特别小心拷贝构造函数的编写,因为一不小心,就会出现内存泄露。 #i
阅读全文
摘要:本文转载自:http://blog.51cto.com/9291927/2148695 总结: 一、成员函数的内存为什么不会反映在sizeof运算符上? 成员函数可以被看作是类作用域的全局函数, 不在对象分配的空间里, 只有虚函数才会在类对象里有一个指针, 存放虚函数的地址等相关信息(即虚函数表)。
阅读全文
摘要:查看更加详细的解析请参考这篇文章:http://blog.51cto.com/9291927/2148695 看一个静态绑定的例子: 1 #include <iostream> 2 3 using namespace std; 4 5 class A 6 { 7 public: 8 int a =
阅读全文
摘要:本文转载自:https://www.cnblogs.com/cxq0017/p/6074247.html C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型
阅读全文
摘要:一、继承限定词(不写的话默认是private) class X : public Y public: 父类怎样,子类怎样 protected:父类的public在子类中变成protected private: 父类的pubic和protected在子类中都变成private 总结:(注意区分 子类中
阅读全文
摘要:一、拷贝构造函数 浅拷贝: 1、如果类未定义自己的拷贝构造函数,编译器会为它合成一个默认拷贝构造函数(默认合成的是public的)。 拷贝构造函数从来不显式调用,而是由编译器隐式地调用。在以下三种情况: (1)定义对象Object a;Object b(a); // 或写成 Object b = a
阅读全文
摘要:一、内联成员函数 如果有的成员函数需要被频繁调用,而且代码比较简单,则这个函数可以定义为内联函数。内联函数的函数体会在编译时被插入到每一个调用它的地方,这样做可以减少调用的开销(函数的调用过程要消耗一些内存资源和运行时间来传递参数和返回值),提高执行效率,但是会增加编译后代码的长度。 内联函数的声明
阅读全文
摘要:C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问 deque是一个双端队列(do
阅读全文
摘要:(1)try语句块内抛出的异常将被catch的参数(形参)捕获,然后在catch语句块内处理此捕获的异常。 (2)当执行一个throw时,跟在throw后面的语句将不再被执行,程序的控制权由此转移到与之匹配的catch语句块。 (3)为了一次性捕获所有异常,可以使用省略号作为异常声明,即catch(
阅读全文
摘要:单例模式 概念:只能创建一个对象的类 实现关键: 1、所有构造函数都必须是private的(包括带参构造,拷贝构造,赋值运算符) 2、通过static成员函数申请对象空间,并返回地址 3、定义一个静态标记,记录对象的个数,并控制 4、析构函数将标记清空,以达到重复申请对象的目的,析构函数是publi
阅读全文
摘要:一、返回值问题 1 #include <iostream> 2 3 using namespace std; 4 5 class X 6 { 7 public: 8 int a = 3; 9 X set1(int b) 10 { 11 a = b; 12 return *this; 13 } 14
阅读全文
摘要:1 #include <iostream.h> 2 3 class CExample 4 { 5 int m_nTest; 6 public: 7 8 CExample(int x):m_nTest(x) //带参数构造函数 9 { 10 cout << "constructor with argu
阅读全文
摘要:http://winpe.uqidong.asia/upzxpxt/upzxpxt.html
阅读全文
摘要:大部分时候失效是因为你的代码有的地方有错误!!
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 int main() 12 { 13 ifstream in; 14 in.open("C:\\Users\\HP\...
阅读全文
摘要:查询类 CTRL+N 查找类CTRL+SHIFT+N 查找文件CTRL+SHIFT+ALT+N 查 找类中的方法或变量CIRL+B 找变量的来源CTRL+ALT+B 找所有的子类CTRL+SHIFT+B 找变量的 类CTRL+G 定位行CTRL+F 在当前窗口查找文本CTRL+SHIFT+F 在指定
阅读全文
摘要:一、内置指针的初始化与赋值 vector<int>* q; //定义一个指针q,其指向的对象为vector<int>类型 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。 int i = 3; int* p
阅读全文
摘要:值初始化和默认初始化的适用场景: 值初始化: (1)在数组初始化的过程中,如果提供的初始值数量少于数组的大小,剩下的元素会进行值初始化; (2)静态static变量、定义在块作用域外的全局变量,如果没有显式的初始值,将执行值初始化; (3)当我们通过书写形如T()的表达式(例如 int())显式地请
阅读全文
摘要:只有当Ctrl+Z单独位于一行的行首时,才表示输入的终止!(即无论何时,都推荐先回车,再Ctrl+Z,再回车结束输入) 当Ctrl+Z位于行中、行末时,输入都不会结束。 (Ctrl+Z表示一个字符,其ASCII码为26.) 1 int main() 2 { 3 vector<string>words
阅读全文
摘要:一、lambda表达式 (1) lambda表达式的一般形式: [ capture list ] ( parameter list ) -> return type { function body } 其中参数列表和返回类型可以省略,但必须永远包含捕获列表和函数体 。比如: auto f = []
阅读全文
摘要:一般说来,加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念.第一条指令 ADD AL ,[SI] 中,[SI] 表示寄存器间接寻址.也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数.假设SI的内容是1234H,这条加法指令,不
阅读全文
摘要:默认情况下,bind的那些不是占位符的参数被拷贝到bind返回的可调用对象中。 当需要把对象传到bind中的参数中时,需要使用ref或者cref。 例如: 1 #include<iostream> 2 #include<functional> 3 4 using namespace std; 5 u
阅读全文
摘要:1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 string add(string a, string b) //此函数默认a的长度大于b(可以在main函数里用if语句控制a的长度大于b) 8 { 9 dequesum; //sum用来存储和的每一位 10 in...
阅读全文
摘要:一丶 最大公因数求法: 辗转相除法(也称欧几里得算法)原理: 二丶最小公倍数求法:两个整数的最小公倍数等于两整数之积除以最大公约数 C++ 代码实现
阅读全文
摘要:一、顺序容器 1.容器的选择 (1) 随机访问,选vector ,deque (2) 在中间插入或者删除元素,选list (3) 在头尾插入或删除元素 , 选deque 2.list的成员函数 (1)lst.sort() (2)lst.unique() // 会把list中相邻重复的元素删除,而un
阅读全文