一、关于const类成员函数有以下几个需要注意的地方:1. 在普通的非const成员函数中,this的类型是一个指向类类型的const指针,而const成员函数中,this的类型是一个指向const类类型对象的const指针。由于这个原因:(1) 返回值 函数名 (参数列表) const {…} 这...
分类:
其他好文 时间:
2014-08-12 12:50:34
阅读次数:
166
内置类型手动初始化类类型-构造函数(确保构造函数将对象的每个成员都初始化)类构造函数初始化列表与函数体内赋值的区别:效率更高函数内的赋值语句执行时先执行成员的默认构造函数,再执行copy assignment初始化列表直接执行一次 copy构造函数含有const成员、reference成员时需使用初...
分类:
其他好文 时间:
2014-08-10 15:16:20
阅读次数:
171
有的时候类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联。声明静态成员我们通过在成员的声明之前加上关键字static使得其与类关联在一起,和其他成员一样,静态成员可以使public得或private的。静态数据成员的类型可以使常量、引用、指针、类类型等。举个例子,我们定义一个类,用它...
分类:
其他好文 时间:
2014-08-09 23:00:59
阅读次数:
477
如果构造函数只接受一个实参,则它实际上定义了转换为此类类型的隐式转换机制,有时我们把这种构造函数称作转换构造函数。能通过一个实参调用的构造函数定义了一条从构造函数的参数类型向类类型隐式转换的规则。例如,在Sales_data类中,接受string的构造函数和接受istream的构造函数分别定义了从这...
分类:
其他好文 时间:
2014-08-09 02:30:26
阅读次数:
236
String和StringBufferString是一个特殊的对象,一旦被初始化,就不会被改变。()指的是abc不是变量s1.Strings1="abc";s1是一个类类型变量,“abc”是一个对象。Strings2=newString("abc");s1和s2的区别:s1在字符串常量池中创建了一个abc字符串s2在堆中创建了两个对象一个是默..
分类:
编程语言 时间:
2014-08-08 18:30:26
阅读次数:
296
如果vector保存内置类型的元素,那么标准库将用0值创建元素的初始化式。 如果vector保存的是含有默认构造函数的类类型,标准库将用该类型的默认构造函数初始化元素。 如果vector保存的是有自定义构造函数没有默认...
分类:
其他好文 时间:
2014-08-07 13:33:50
阅读次数:
175
在一个类的实例被释放之前,析构函数被立即调用。用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型。
析构过程原理
Swift 会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift 通过自动引用计数(ARC)处理实例的内存管理。通常当你的实例被释放时不需要手动地去清理。但是,当使用自己的资源时,你可能需要进行一些额外的清理...
分类:
编程语言 时间:
2014-08-07 09:50:09
阅读次数:
368
1.多态在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。在Java中,没有指针,就直接用父类实例化子类对象多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的,多态可以让父类的指针有“多种...
分类:
其他好文 时间:
2014-08-04 17:00:37
阅读次数:
259
一、定义 数组的维数必须用大于等于1的常量表达式来定义 整形字面值常量、枚举常量或者常量表达式初始化的整形const对象; 二、初始化 1、显示初始化数组元素 *在函数体外定义的内置数组,其元素均初始化为0; *在函数体内定义的内置数组,其元素无初始化; *不管数组在哪里定义,如果其元素为类类型,则...
分类:
其他好文 时间:
2014-08-04 04:10:16
阅读次数:
219
【1】类的内存问题 类是抽象的,不占用内存,而对象是具体的,占用 存储空间。在一开始时弄清对象和类的关系是十分 重要的。【2】类的声明 如果在类的定义中既不指定private也不指定public,则系统就默认为是私有的。 归纳以上对类类型的声明,可得到其一般形式如下: class 类名 ...
分类:
编程语言 时间:
2014-08-02 09:59:53
阅读次数:
328