设为首页 加入收藏

TOP

C++拷贝构造函数
2014-11-24 07:46:09 来源: 作者: 【 】 浏览:1
Tags:拷贝 构造 函数

最近在复习C++的考试,对于上机中出现多的是构造函数\拷贝构造函数\虚函数等等接触了很多,对它们的理解逐步的加深.


. 什么是拷贝构造函数


首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:


int a = 100;


int b = a;


而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。


下面看一个类对象拷贝的简单例子。


#include
using namespace std;

class CExample {
private:
 int a;
public:
//构造函数
 CExample(int b)
 { a = b;}

//一般函数
 void Show ()
 {
cout< }
};

int main()
{
 CExample A(100);
 CExample B = A; //注意这里的对象初始化要调用拷贝构造函数,而非赋值
  B.Show ();
 return 0;
}


运行程序,屏幕输出100。从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制过程。就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。

下面举例说明拷贝构造函数的工作过程。


#include
using namespace std;

class CExample {
private:
int a;
public:
//构造函数
CExample(int b)
{ a = b;}

//拷贝构造函数
CExample(const CExample& C)
{
a = C.a;
}

//一般函数
void Show ()
{
cout< }
};

int main()
{
CExample A(100);
CExample B = A; // CExample B(A); 也是一样的
B.Show ();
return 0;
}


CExample(const CExample& C) 就是我们自定义的拷贝构造函数。可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇正则表达式之零宽断言 下一篇matlab中semilogx画图和显示error..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)