对于普通类型的对象来说,它们之间的复制是很简单的,例如:
int a=88;
int b=a;
而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
#include iostream>
using namespace std;
class CExample {
private:
int a;
pub...
分类:
编程语言 时间:
2015-05-14 16:34:04
阅读次数:
118
赋值运算符重载: 是用一个已经存在的对象去给另一个已经存在并初始化(调用过构造函数)的对象进行赋值。拷贝构造函数:其实本质还是构造函数,用一个已存在的对象去构造一个原先不存在的对象。string a("hello");string b("world");string c =a ; //拷贝构造函数....
分类:
其他好文 时间:
2015-05-08 12:46:41
阅读次数:
160
在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。 但是如果我问你“拷贝构造函数的参数为什么必须使用引用类型?”这个问题, 你会怎么回答? 或许你会回答为了减少一次内存拷贝? 很惭愧的是,我的第一感觉也是这么回答。不过还好,我思索一下以后,发现这...
分类:
其他好文 时间:
2015-05-05 14:22:30
阅读次数:
112
#include using namespace std;class Test1
{
public:
Test1()
{
//赋值
//p=NULL;
// or p=new int; }
//重要
Test1& operator=(const Test1& test1)
{
i...
分类:
编程语言 时间:
2015-05-03 14:39:17
阅读次数:
109
#include #include
using namespace std;
class name
{
public :
name();//默认构造函数
name(char *pn); //构造函数
name(const name &obj);//拷贝构造函数
~ name() ;//析构函数
protected :
char *pname ;
int size ;...
分类:
编程语言 时间:
2015-05-03 12:00:31
阅读次数:
180
构造函数: C++提供了构造函数(constructor)来处理对象的初始化。在建立对象时自动执行。构造函数的名字必须与类名同名,它不具有任何类型,不返回任何值。
构造函数总结:
①构造函数是C++中用于初始化对象状态的特殊函数。
② 构造函数在对象创建时自动被调用(默认调用),隐身调用。
③构造函数和普通成员函数都遵循重载规则。
④拷贝构造函数是对象正确初始化的重要保证,必要的时候,...
分类:
编程语言 时间:
2015-05-02 20:47:02
阅读次数:
169
应当注意以下几点:1.是否将返回值类型声明为该类型的引用,否则无法做连续赋值2.是否将传入的参数声明为常量引用,如果不是常量,不能保证不会修改传入的参数,如果不是引用,会调用一次拷贝构造函数影响代码的效率。3.是否判断赋值的两个操作数是同一个实例。4.是否删除被赋值对象的内存,否则会产生内存泄露。程...
分类:
其他好文 时间:
2015-04-30 19:54:20
阅读次数:
121
在C++中, 构造函数,拷贝构造函数,析构函数和赋值函数(赋值运算符重载)是最基本不过的需要掌握的知识。在effective C++中说过这么一点:拷贝构造函数的参数必须是引用类型的。但是为什么呢?拷贝构造函数的参数必须是引用类型的如果拷贝构造函数中的参数不是一个引用,即形如CClass(const...
分类:
编程语言 时间:
2015-04-29 19:13:15
阅读次数:
139
私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量.然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了私有成员变量,因而,产生了困惑.下面以具体实例进行说明:疑惑:为什么第26行和第32行代码可以编译通过...
分类:
编程语言 时间:
2015-04-29 19:09:47
阅读次数:
143
//#45 运用成员函数模版接受所有兼容类型
{
/* 1:当你使用智能指针的时候,会发生一个问题,想把一个子类的对象赋给基类的指针变得不可能了,
因为智能指针指定了的是基类的类型,而赋给它的是一个它的子类的对象。
2:解决办法,使用成员函数模版,可以分别对拷贝构造函数和赋值操作进行模版化: */
templatecla...
分类:
编程语言 时间:
2015-04-26 10:55:34
阅读次数:
208