C++复制构造函数的实现
复制构造函数是一种特殊的构造函数,有一般构造函数的特性。它的功能是用一个已知的对象来初始化一个被创建的同类对象。复制构造函数的参数传递方式必须按引用来进行传递,请看实例:
#include <iostream>
#include <cstring>
using namespace std ;
class Student
{
	private :
		char name[8];
		int age ;
		char sex ;
		int score ;
	public :
		void disp(); //打印信息的函数声明
		Student(char name[],int age , char sex ,int score); //构造函数声明
		Student(Student &dx);	//复制构造函数的声明
		~Student(); //析构函数的声明
};
//打印信息函数的实现
void Student::disp()
{
	cout << this->name << endl ;
	cout << this->age << endl ;
	cout << this->sex << endl ;
	cout << this->score << endl ;
}
//构造函数的实现
Student::Student(char name[],int age , char sex ,int score)
{
	strcpy(this->name,name);
	this->age = age ;
	this->sex = sex ;
	this->score = score ;
}
//复制构造函数的实现
Student::Student(Student &dx)
{
	strcpy(this->name , dx.name);
	this->age = dx.age ;
	this->sex = dx.sex ;
	this->score = dx.score ;
}
//析构函数的实现
Student::~Student()
{
	cout << "程序结束" << endl ;
} 
int main(void)
{
	Student stu1("YYX",23,'N',86);
	Student stu2(stu1);
	stu1.disp() ;
	stu2.disp() ;
	return 0 ;
}
运行结果:
YYX
23
N
86
YYX
23
N
86
程序结束
程序结束
C++复制构造函数的实现的更多相关文章
- 剑指offer:赋值运算符函数和复制构造函数
		
赋值运算符函数 对于定义一个赋值运算符函数时,需要注意一下几点: (1)函数的返回类型必须是一个引用,因为只有返回引用,才可以连续赋值 (2)传入的参数声明为常量引用,可以提高代码效率,同时赋值运算函 ...
 - 剑指offer 复制构造函数
		
复制构造函数: A(const A &other){value=other.value;} 也就是传值参数改为常量引用. #include<iostream> using name ...
 - 编译器角度看C++复制构造函数
		
[C++对象模型]复制构造函数的建构操作 关于复制构造函数的简单介绍,可以看我以前写过的一篇文章C++复制控制之复制构造函数该文章中介绍了复制构造函数的定义.调用时机.也对编译器合成的复制构造函数行为 ...
 - C++ 复制控制之复制构造函数
		
7月26日更新: 过了这么长的时间回过头来看,发现文章中有几个点说错(用红字标出): 构造函数不是只有唯一一个参数,它也可以是多参数形式,其第二参数及后继以一个默认值供应. 不是没有声明复制控制函数时 ...
 - C++ 复制构造函数
		
C++类的设计中,如果某些函数没有显式定义,C++会自动生成,复制构造函数便是其中之一,其他的还有默认构造函数.赋值操作符.默认析构函数.地址操作符.一个类的复制构造函数的原型一般为: Class_n ...
 - 我的c++学习(7)引用和复制构造函数
		
一.引用 什么是引用? 引用又称别名(alias),是一种非常特殊的数据类型.它不是定义一个新的变量,而是给一个已经定义的变量重新起一个别名,也就是 C++系统不为引用类型变量分配内存空间.引用主要用 ...
 - C++中的复制构造函数
		
与C++中的构造函数相同,复制构造函数在对象生成过程中同样进行插入对应的Vtable虚表,但在成员变量赋值时,除具有复制构造函数的成员对象外,编译器合成复制构造函数其余均采用”Bitwise copy ...
 - C++学习基础六——复制构造函数和赋值操作符
		
1.什么是复制构造函数 复制构造函数:是构造函数,其只有一个参数,参数类型是所属类的类型,且参数是一个const引用. 作用:将本类的成员变量赋值为引用形参的成员变量. 2.什么是赋值操作符 赋值操作 ...
 - C++中复制构造函数
		
复制构造函数 复制构造函数用于: 根据另一个同类型的对象显示或隐式初始化一个对象 复制一个对象,将它作为实参传给一个函数 从函数返回时复制一个对象 初始化顺序容器中的元素 根据元素初始化式列表初始化数 ...
 - 深入理解c++构造函数, 复制构造函数和赋值函数重载(operator=)
		
注 以下代码编译及运行环境均为 Xcode 6.4, LLVM 6.1 with GNU++11 support, Mac OS X 10.10.2 调用时机 看例子 // // main.cpp / ...
 
随机推荐
- Web框架(Day64)
			
阅读目录 http协议 web应用与web框架 一.http协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World W ...
 - 谷歌Project Fi服务(转)
			
问:谷歌推出的移动虚拟网络Project Fi到底是什么呀? 答:谷歌手里有很多张“牌”可以出,现在这家搜索巨头又将目标放在了无线产业.在美国,移动电信合约服务是AT&T, Verizon, ...
 - jsp页面向后台传递 不赋值 传递的默认值
			
<input type="hidden" name="leaderIdentity" value="${subject.leaderId }&q ...
 - iOS  自定义滑动切换TabbarItem    觉得设计丑也要做出来的UI效果。。。
			
UI丑却要继续做的感言: 对UI不满意的时候,就会觉得丑爆了,时间长了,却丑习惯了. 论前一阵子Tabbar 多丑,丑得最后不要tabbar了...但是自定义tabbar 和遇到的问题解决的过程可以记 ...
 - hive--udf函数(开发-4种加载方式)
			
UDF函数开发 标准函数(UDF):以一行数据中的一列或者多列数据作为参数然后返回解雇欧式一个值的函数,同样也可以返回一个复杂的对象,例如array,map,struct. 聚合函数(UDAF):接受 ...
 - Mspec
			
Machine.Specifications Machine.Specifications (MSpec) is a context/specification framework that remo ...
 - 【JavaScript】满天星
			
参考: 1.http://www.w3school.com.cn/tags/canvas_filltext.asp 2.产生随机数:http://www.cnblogs.com/banbu/archi ...
 - GIT使用—一些概念
			
(1)Git版本库(repository) 一个简单的数据库,包括所有用来维护与管理项目的修订版本和历史的信息. Git维护两个主要的数据结构: 对象库(object store)-在复制操作时能进行 ...
 - c# 布局(stackpanel)
			
<Grid> <StackPanel> <Button Content="asas"> </Button> <Button C ...
 - java鲁棒性(健壮性)
			
java能检测编译和运行时的错误 java自己操作内存减少了内存出错的可能 java实现了真数组,避免了覆盖数据的可能 Java不支持指针操作,大大减少了错误发生的可能性 ... 备注: Java能运 ...