随笔分类 - C++
C++语言总结,包括面向对象,标准库,泛型编程等
摘要:在C++中,众所周知在一个资源管理类(例如含有指向堆内存的指针)中需要重新定义拷贝构造函数、赋值运算符以及析构函数(Big Three),在新标准下还可能需要定义移动构造函数和移动赋值运算符(Big Five)。但实际上,这条规则还可以有一个小扩展。就是在资源管理类中,往往需要重新定义自己的swap
阅读全文
摘要:C++11/14关键字constexpr用法及注意事项,包括constexpr变量,constexpr修饰函数,构造函数等
阅读全文
摘要:虚函数,虚指针(vptr)与虚函数表(vtbl)
阅读全文
摘要:1.从函数模板谈起 函数模板的类型推导机制是在c++98时代就有的,auto的类型推导机制与其基本一致,所以先理解函数模板类型推导。 函数模板可以用如下代码框架表示: PT与T的不同之处在于PT相对于T可能有一些饰词(adornments),如const 和引用&。 对于模板类型T的推导是PT和ex
阅读全文
摘要:题目: 为下面的Rectangle类实现构造函数,拷贝构造函数,赋值操作符,析构函数。 class Shape { int no; }; class Point { int x; int y; }; class Rectangle: public Shape { int width; int hei
阅读全文
摘要:一. 组合(复合),继承,委托 1.composition(组合)has-a 1.1 组合举例:(Adapter 设计模式) 关系: 利用deque功能实现所有queue功能 1.2 构造与析构 构造由内而外: container的构造函数先调用component的默认构造函数,再执行自己 如果默认
阅读全文
摘要:对象内存模型 一. 栈(Stack) VS. 堆(heap) 栈 由系统自动管理,以执行函数为单位 空间大小编译时确定(参数+局部变量) 函数执行时,系统自动分配一个stack 函数执行结束时,系统立即自动回收stack 堆 在c++中由程序员手动控制 手动分配new和malloc 手动释放dele
阅读全文
摘要:二 Class with pointer members(Class String) 1. 测试代码(使用效果) 2 Big three(三种特殊函数) 2.1 ctor & dtor(构造与析构) 2.2 Class with pointer members必须有copy ctor(拷贝构造)和c
阅读全文
摘要:Introduce class without pointer members, take Class Complex as an example
阅读全文

浙公网安备 33010602011771号