类和动态内存分配 整理自《C++ Primer Plus》 1. 动态内存和类 + 静态类成员有一个特点:无论创建了多少对象,程序都只创建一个静态类变量副本。也就是说,类的所有对象共享同一个静态成员。静态数据成员在类声明中声明,在包含类方法的文件中初始化。 + 复制构造函数用于将一个对象复制到新创建 ...
分类:
其他好文 时间:
2019-09-09 22:37:57
阅读次数:
100
8.1.1栈展开 抛出异常时,将暂停当前函数的执行,开始查找匹配的catch子句。首先检查throw本身是否在try块内部,如果是,检查与该try相关的catch子句,看是否可以处理该异常。如果不能处理,就退出当前函数,并且释放当前函数的内存并销毁局部对象,继续到上层的调用函数中查找,直到找到一个可 ...
分类:
其他好文 时间:
2019-06-09 00:10:34
阅读次数:
131
#pragma oncetemplate<typename T>class smart_pointer{private: T* m_pRawPointer;public: smart_pointer(T* pData) :m_pRawPointer(pData) {} //复制构造函数 smart_ ...
分类:
其他好文 时间:
2019-06-08 20:31:24
阅读次数:
127
``` // // main.cpp // 运算符重载(Overloading) // 默认复制构造函数(Default Copy Constructor) // Created by mac on 2019/4/29. // Copyright ? 2019年 mac. All rights re ...
分类:
其他好文 时间:
2019-05-02 21:33:21
阅读次数:
115
1.有成员对象的类叫做封闭类 2.任何生成封闭类对象的语句,都得让编译器明白对象中的成员对象是如何初始化的。 具体的做法就是通过封闭类的构造函数的初始化列表。 3.构造与析构的顺序 通俗来说就是先放东西后建房子,先拆房子后清空里面东西。 4.封闭类的复制构造函数: 封闭类的对象,如果是用默认复制构造 ...
分类:
其他好文 时间:
2019-04-06 14:05:51
阅读次数:
127
1 对象的引用: 对象的引用其实就是对同一个对象进行操作,只是在原对象的基础上进行操作 例如: void fun(box &T){ box.length ++; } 2 对象的复制 而对象的复制就是创建一个新的对象,把一个对象的值赋值给这个新对象,赋值的 过程中首先调用复制构造函数 Box::Box ...
分类:
其他好文 时间:
2019-03-19 12:29:17
阅读次数:
191
在GameBoard.h文件里: 在GameBoard.cpp里 编写复制构造函数时,编译器不会自动生成默认的构造函数,因此必须手动添加一个默认的构造函数 ...
分类:
其他好文 时间:
2019-02-08 10:26:39
阅读次数:
156
非类型的参数是“普通的”参数,eg:指针,int,然而非类型的模板参数只能是整数类型(int , char , long long int ...),和枚举类型,引用和指针 在头文件里: 在源文件里: 在main函数里: 可以看出不能通过非常量的整数来指定高度和宽度,但是可以通过const,cons ...
分类:
其他好文 时间:
2019-02-07 20:39:52
阅读次数:
183
[转]为什么复制构造函数的参数需要加const和引用 一.引言 1.0在解答这个问题之前,我们先跑个小程序,看下调用关系。 1.1【输出结果】 1.2【分析结果】 第一个输出: constructor with argument. //CExample aaa(2); 这里创建了变量aaa,在创建的 ...
分类:
其他好文 时间:
2019-02-02 11:12:26
阅读次数:
178
一、运算符的重载 1、运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载。运算符仅仅是语法上的方便,它是另一种函数调用的方式,只有在设计涉及的代码更容易写,尤其是更容易读的时候才有必要重载。 2、实现运算符重载的 ...
分类:
编程语言 时间:
2019-01-12 19:01:59
阅读次数:
200