本例子说明以下问题:
虚函数的定义,调用(外部函数的指针或引用,成员函数),构造函数和析构函数中调用虚函数,虚析构函数
赋值兼容,构造函数的重载,构造函数的初始化列表
见代码:
#include
using namespace std;
class Base
{
public:
Base():m(1),n(m+1){Display();} //构造函数中调用虚函数时自己...
分类:
其他好文 时间:
2015-08-19 11:12:45
阅读次数:
106
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:classClxBase{public:ClxBase(){};virtual~ClxBase(){};virtualvoidDoSomething(){coutD...
分类:
编程语言 时间:
2015-08-19 00:17:06
阅读次数:
149
1. 如果一个类将要作为基类,那么它应该具有一个虚析构函数以防止delete经由基类指针指向的派生类对象时发生的"局部销毁"问题,避免造成内存泄露,数据结构败坏,在调试器上浪费时间等问题;任何带有虚函数的类几乎肯定需要一个虚析构函数.2. 在不必需的情况下不应该将成员函数设为虚函数,否则,如果导致一...
分类:
编程语言 时间:
2015-08-18 19:03:16
阅读次数:
146
//构造的矩阵函数
#define inf 10000000
class Matrix
{
public:
Matrix(int n);//构造函数
~Matrix();//析构函数
int row;//矩阵行数与列数
int** p;
};
Matrix::Matrix(int n)
{
row=n;
p=...
分类:
编程语言 时间:
2015-08-17 23:40:55
阅读次数:
175
智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分配了内存,也就是用malloc或者new.那只能...
分类:
其他好文 时间:
2015-08-17 15:19:56
阅读次数:
122
一、 继承
1. Swift中定义的类,如果不继承自任何类,它就是基类。这一点和objective-c中定义的类不一样,在objective-c中定义的类默认的基类是NSObject。
2. 重写父类的方法及属性,必须使用override的关键字(这样处理的话,更清晰了,很容易看出是父类的方法还是自己类中的方法)。
3. 如果在类,方法,属性 前面用final进行了修饰,就不允许被继承...
分类:
编程语言 时间:
2015-08-17 12:06:17
阅读次数:
178
理解了一下stl的空间配置器,发现一个比较好的学习方法,跟着代码自己也跟着写一遍,顺便加些注释,可以更加帮助自己理解。如new,delete一般,分为两个步骤,1,配置空间,2,构造对象(1,析构对象,2,释放空间)一。构造和析构的基本工具(construct,destroy)1,construct...
分类:
其他好文 时间:
2015-08-16 21:12:48
阅读次数:
119
C++类中的成员函数的三大件(BigThree):拷贝构造函数,赋值运算符重载函数,析构函数。拷贝构造函数:用已存在类对象赋值给将要创建对象赋值,创建出新的对象。一般定义如下:String(constString&);//参数中的引用不能去掉,否则造成死循环。赋值运算符重载函数:一般定..
分类:
编程语言 时间:
2015-08-15 18:36:08
阅读次数:
461
由于好奇STL中的vector 对于自定义数据类型的 “ = ”(赋值运算符的)支持,谢了一段简单的测试代码进行测试。
结果证明vector对于赋值预算符支持良好,但是对于动态分配的类构成的vector数组,
博主认为一定要重写析构函数与复制构造函数以及运算符重载“=”运算符(这是一条软件规则,详见博主测试),链接如下:
http://blog.csdn.net/u010003835...
分类:
编程语言 时间:
2015-08-14 17:12:41
阅读次数:
384
作者:摇摆少年梦
视频地址:http://www.xuetuwuyou.com/course/12本节主要内容
apply与unapply方法
零变量或变量的模式匹配
提取器与序列模式
scala中的占位符使用总结
1. apply与unapply方法apply方法我们已经非常熟悉了,它帮助我们无需new操作就可以创建对象,而unapply方法则用于析构出对象,在模式匹配中特别提到,如果一个类要能...
分类:
其他好文 时间:
2015-08-13 22:29:24
阅读次数:
205