- 博客(14)
- 资源 (6)
- 收藏
- 关注
原创 C++中的继承
私有继承:用….来实现,和分层的区别:用….来实现中的…不希望被外部使用(构造函数protect) 公有继承:是一个…. 多继承:成员二义性(可以指定基类,但是虚函数意义失去),可以通过定义新类等价接口的方法避免(但是就多余了类的设计)...
2018-06-29 21:44:01 190
原创 《深入理解C++11》笔记-用户自定义字面量
上一篇:《深入理解C++11》笔记–非受限联合体 本篇继续介绍第三章的内容:用户自定义字面量。字面量是什么意思呢?例如:int a = 0; // a为变量,0为字面量自定义字面量就是我们自己规定一个字面量格式来作为一些值的定义,具体代码如下:class Example{public: Example(int i, int j):a(i), b(j){} int...
2018-06-24 22:45:10 758 2
原创 《深入理解C++11》笔记–非受限联合体
上一篇:《深入理解C++11》笔记–POD类型 本编继续介绍第三章的内容:非受限联合体。在这之前我们先回顾一下联合体的用法:union Example{ char c[4]; int i;};int main(){ Example example; example.c[0] = 0x04; example.c[1] = 0x03; exa...
2018-06-24 18:23:19 774
原创 《深入理解C++11》笔记–POD类型
上一篇:《深入理解C++11》笔记–列表初始化 本编继续介绍第三章的内容:POD类型,plain old data。Plain代表数据是普通类型,old代表能与C兼容支持memcpy、memset等函数。POD分为两个部分,trival(平凡的)和(s’tan’dard layout)标准布局的。平台的类或结构体必须满足以下的条件: - 平凡的默认构造函数和析构函数。只要是自己定义了函数...
2018-06-24 14:03:05 3522
原创 QT设置widget属性为FramelessWindowHint导致界面不刷新的问题解决
据说这是QT5之后的BUG,还没有深入研究,只是找到了一个解决方法,这里做一下记录: 对窗口重载showEven,实现以下代码即可。void BaseWindow::showEvent(QShowEvent *event){#if QT_VERSION >= 0x050000 this->setAttribute(Qt::WA_Mapped);#endif ...
2018-06-20 10:38:58 2613
原创 《深入理解C++11》笔记–列表初始化
上一篇:《深入理解C++11》笔记–显式转换操作符 本编继续介绍第三章中的内容:列表初始化。 原来C++可以铜鼓花括号{}对数组元素进行统一初始化。例如:int a[5] = {0};int b[5] = {1, 2, 3, 4, 5};但是自定义的类型无法使用这种列表初始化,例如vector就不行,而C++11扩展了对自定义类型列表初始化的支持。int a[5] = {0};...
2018-06-18 21:57:54 547
原创 《深入理解C++11》笔记–显式转换操作符
上一篇:《深入理解C++11》笔记–右值引用:移动语义和完美转发 本编继续介绍第三章中的内容,显式转换操作符。 在介绍显式转换操作符之前先讨论一下C++的隐式转换,我们都知道很多时候C++会自动对类型进行转换,很多时候会比较方便,但是也会有一些问题,例如下面的例子:class ExampleA{public: ExampleA(int a = 0):data(a) {}priv...
2018-06-18 21:10:00 549
原创 《深入理解C++11》笔记–右值引用:移动语义和完美转发
上一篇:《深入理解C++11》笔记–构造函数 这篇文章介绍的了第三章中右值引用相关的内容。在介绍该内容之前,会对一些相关问题进行解释,便于理解后面的内容。 指针成员和拷贝构造 当一个类中含有指针成员时,由于默认的拷贝构造函数只会进行浅拷贝,所以当我们写出一下代码时:class Base{public: Base():data(new int(0)){} //Base...
2018-06-17 19:59:34 5513 1
原创 《深入理解C++11》笔记–构造函数
上一篇:《深入理解C++11》笔记–模板 这篇文章介绍的了第三章中构造函数相关的内容。 继承构造函数 派生类的构造函数往往需要调用基类的构造函数,例如:class Base{public: Base(int a): i(a){}private: int i;};class Inherit:public Base{public: Inherit(i...
2018-06-16 13:31:01 729
原创 《深入理解C++11》笔记--模板
上一篇:《深入理解C++11》笔记–扩展 本篇介绍第一章最后一部分内容,模板相关的扩展。模板函数的默认模板参数外部模板局部和匿名实参作为模板参数模板函数的默认模板参数 大家都了解函数可以拥有默认形参,并且模板类可以有默认的模板参数,现在C++11中模板函数也可以有默认的模板参数了。例如:template<typename T = int> // C++9...
2018-06-09 15:29:24 609
原创 《深入理解C++11》笔记--扩展
上一篇:《深入理解C++11》笔记–兼容C99 本篇介绍第一章中间部分的内容。 这部分内容主要是对原有的一些关键字、类型、宏等进行了扩展。long long整型扩展的整形宏__cplusplus静态断言noexcept修饰符、noexcept操作符快速初始化成员变量非静态成员的sizeof扩展的friend语法final/override控制long long整型...
2018-06-06 23:19:37 1238 1
原创 《深入理解C++11》笔记--兼容C99
就像上一篇文章说到,第一个C++标准是C++98,也就是在1998年推出,而2003年只是对一些缺陷进行了修复。而上一个最新的C标准C99是在1999年推出,因此C++11之前是不支持C99标准的,在C++11中加入了对C99的支持,包括以下内容:C99的预定义宏预定义标识符号__func___Pragma操作符不定参数宏定义以及__VA_ARGS__宽窄字符串连接C99的预定...
2018-06-03 16:44:45 809 1
原创 《深入理解C++11》笔记--简介
学习C++11之前,先来了解一下C++的历史。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作,1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年。第三次是C++的标准化,一直到1...
2018-06-03 13:35:37 778
computerinfo:Duilib界面开发Window下的信息获取工具
2015-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人