记得在复制构造函数和赋值操作符的参数类型上加上const.正确的复制构造函数应该是X::X(const X&)这种,而不是X::X(X&)这种,这里有两个原因.第一:绑定一个非const引用到一个临时对象是非法的.使用X::X(X&)作为复制构造函数不会允许复制任何特殊表达式的结果.为什么呢.?因为...
分类:
其他好文 时间:
2014-08-10 15:18:30
阅读次数:
195
is-a关系 类包含关系
构造函数 复制构造函数 重载赋值操作符 析构函数
动态内存空间分配和释放 new delete操作
static 数据成员
友元函数 重载输入>>和输出<<操作符...
分类:
编程语言 时间:
2014-07-31 00:01:45
阅读次数:
439
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的st...
分类:
编程语言 时间:
2014-07-28 13:49:30
阅读次数:
251
#ifndef QUEUE_HPP
#define QUEUE_HPP
#include
#include
template class Queue;
template
class Node{
friend class Queue;
public:
Node(T data = 0, Node *next = NULL)
:data...
分类:
其他好文 时间:
2014-07-23 00:05:17
阅读次数:
338
1 class Widget{ 2 3 Widget(); //默认构造函数 4 5 Widget(const Widget& rhs); //复制构造函数 6 7 Widget& operator= (const Widget& rhs);//...
分类:
其他好文 时间:
2014-07-18 20:30:16
阅读次数:
226
本来看看return到底做了什么结果看了这个复制构造函数,复制构造函数调用的场合如下:? 根据另一个同类型的对象显式或隐式初始化一个对象。? 复制一个对象,将它作为实参传给一个函数。//传递实参的副本时会调用? 从函数返回时复制一个对象。//return返回一个副本时会调用? 初始化顺序容器中的元素...
分类:
其他好文 时间:
2014-07-07 16:52:04
阅读次数:
229
十三、复制控制
1. 复制构造函数
类中的成员函数都默认为inline类型,所以即使在类定义体内的函数声明显示定义为inline类型,在进行函数定义时也能够将inline进行省略。
// 复制构造函数应该为常量引用类型,如果允许传值参数会造成无限循环调用从而导致内存溢出。
CopyConstruct(const CopyConstruct& a)...
分类:
编程语言 时间:
2014-07-03 16:07:26
阅读次数:
255
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法...
分类:
其他好文 时间:
2014-07-03 09:19:19
阅读次数:
170
我写这样的文章,当然是为了自己日后方便自己查看,当作看书的笔记,也是为了和广大喜欢c++语言的同仁交流。几天复习了c++primer的13章复制控制。从上一章中我们知道,如果我们不定义类的构造函数时,编译器就会很友好的帮我们合成一个,那么复制构造函数呢?首先复制构造函数的定义如class(const class&),复制构造函数和构造函数一样也没有返回值,但是复制构造函数具有一个该类类型的引用作为...
分类:
编程语言 时间:
2014-06-25 07:44:14
阅读次数:
228
1.复制构造函数可用于:(1)根据另一个同类型的对象显示或隐式初始化一个对象string str1="test"; //隐式string str2=str1; //显示str1为先调用string的字符串形参的构造函数,创建一个临时对象,然后,使用string复制构造函数将str1初始化为那...
分类:
编程语言 时间:
2014-06-17 14:02:29
阅读次数:
156