拷贝构造函数的第一个参数必须是引用类型,此参数几乎总是const的引用。拷贝构造函数在几种情况下会隐式地使用。因此,拷贝构造函数不应该是explicit的
即使我们定义了其他构造函数,在没有拷贝构造函数时,编辑器也会为我们合成的。编辑器从给定对象中依次将每个非static成员拷贝到创建的对象中。每个成员决定了它使用何种方式进行拷贝。类调用拷贝构造函数,数组逐个拷贝,内置类型直接拷贝
strin...
分类:
编程语言 时间:
2014-09-11 11:11:50
阅读次数:
342
首先,定义如下类A:
class A
{
private:
static int val_s;
public:
static int getVal(){cout << "call getVal in A..." << endl;return val_s;}
};
我们可以看到,上述类的定义中包含静态成员变量val_s 和静态成员函数getVal() ,对于静态的成员变量,一般...
分类:
编程语言 时间:
2014-09-06 12:29:23
阅读次数:
251
16.19 编写函数,接受一个容器的引用,打印容器中的元素,使用容器的size_type和size成员来控制打印元素的循环。16.20 重写上一题的函数,使用begin和end返回的迭代器来控制循环。#include#include#include#includeusing namespace st...
分类:
其他好文 时间:
2014-09-01 00:26:12
阅读次数:
207
C++ 重写重载重定义区别(源自:http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/)1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关...
分类:
编程语言 时间:
2014-08-28 07:25:59
阅读次数:
214
在创建阶段系统通过下面的几个步骤来完成对象的创建过程为对象分配存储空间开始构造对象从超类到子类对static成员进行初始化超类成员变量按顺序初始化,递归调用超类的构造方法子类成员变量按顺序初始化,子类构造方法调用本文重点演示第三步到第五步:Grandpa类 1 package com.xinye.t...
分类:
编程语言 时间:
2014-08-13 18:24:46
阅读次数:
259
有关const成员、static成员、const static成员的初始化:
1、const成员:只能在构造函数后的初始化列表中初始化
2、static成员:初始化在类外,且不加static修饰
3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化
示例:
#include ...
分类:
编程语言 时间:
2014-08-07 13:15:00
阅读次数:
245
开发中枚举类型往往被用在可以一一列举的实例中,比如 enum Color{red,green,blue;}。但是可能你不会注意到它的更强大之处,比如如下问题看看你能作答吗 1、枚举类型可以有构造函数吗? 2、枚举类型可以实现接口、继承类吗? 3、枚举类型可以有static成员变量和方法吗?...
分类:
其他好文 时间:
2014-08-05 00:14:58
阅读次数:
209
1. 类模板的 static 成员[不同于C#中的static]
类模板可以像任意其他类一样声明static 成员。以下代码:
template class Foo {
public:
static std::size_tcount() { return ctr; }
// other interfacemembers
private:
static std::size_tct...
分类:
编程语言 时间:
2014-07-26 02:42:56
阅读次数:
242
成员函数如果是const意味着什么?有两个流行概念:物理常量性和逻辑常量性。C++对常量性的定义采用的是物理常量性概念,即const 成员函数不可以更改对象内任何non-static成员变量。例如: 1 class CTextBlock 2 { 3 public: 4 ...... 5 st...
分类:
其他好文 时间:
2014-07-17 18:37:53
阅读次数:
158
经验:声明 template 参数时,前缀关键字 class 和 typename 可互换。请使用关键字 typename 标识嵌套从属类型名称;
示例1:
template
void print2nd(const C &container){
C::const_iterator *x;//歧义。如果const_iterator是个static成员变量,x是个global 变量,这里的 *就是乘
//...
}
示例2:
template
void pr...
分类:
编程语言 时间:
2014-07-14 11:06:02
阅读次数:
206