浅拷贝就是指两个对象共同拥有同一个值,一个对象改变了该值,也会影响到另一个对象。 深拷贝就是两个对象的值相等,但是互相独立。 构造函数的参数是该类的一个实例。 ...
分类:
编程语言 时间:
2016-08-15 10:05:00
阅读次数:
149
常见问题 Q1. 下面代码的输出结果是( )? A. a a a B. a a a a C. a a D. a Q2. 为什么拷贝构造函数的参数是一个引用,可以不是引用吗? Q3. 什么是深复制?什么是浅复制? 复制构造函数 1. 复制构造函数 只有单个形参,而且该形参是对本类类型对象的引用(常用c ...
分类:
编程语言 时间:
2016-08-09 09:24:19
阅读次数:
152
拷贝构造函数的参数一定要是本类对象的引用,为什么?原因在待会说 拷贝构造函数的调用时机:1)在定义对象时用本类对象初始化新定义的对象2)本类对象作为函数参数时,调用函数时,实参对象会对形参进行初始化,那么就需要调用拷贝构造函数。(这也是为什么拷贝构造函数参数必须是本类对象的引用,因为如果形参时本类对 ...
分类:
其他好文 时间:
2016-08-01 19:00:44
阅读次数:
121
本篇笔记主要分为两个部分,第一部分是以String类为例的基于对象的编程,重点在于构造与析构、拷贝构造函数、拷贝赋值函数三个重要函数。这一部分与笔记(1)中的内容结合起来就是基于对象编程的主要内容。第二部分是在掌握了基于对象编程的基础上的面向对象编程(OOP)学习,讲解了类之间的组合、继承、委托关系 ...
分类:
编程语言 时间:
2016-08-01 00:16:09
阅读次数:
156
以对象管理资源的观念常被称为“资源取得时机便是初始化时机”(RAII) auto_ptr被销毁时会自动删除它所指之物,所以一定要注意别让多个auto_ptr同时指向同一对象,否则对象会被删除多次,行为未定义 auto_ptr有一个性质:若通过拷贝构造函数或拷贝构造运算符复制它们,它们会变成NULL, ...
分类:
编程语言 时间:
2016-07-29 21:03:58
阅读次数:
229
1、C++中什么都不写,就有6个默认函数,由系统自动提供:构造函数,拷贝构造函数,赋值语句,析构函数,对一般对象的取地址符,对常对象的取地址重载;对&运算符的重载:Testt3;Test*pt=&t3;Test*operator&(){
returnthis;
}对常对象的取地址重载;constTestt4;con..
分类:
编程语言 时间:
2016-07-22 15:00:13
阅读次数:
1358
问题:C++中的空类,默认情况下会产生哪些类成员函数?系统默认的缺省构造函数和拷贝构造函数(复制构造函数)系统默认提供的析构函数.系统默认的运算符重载函数(拷贝赋值函数):用于同类对象之间的赋值.系统默认的取值运算:当对类的对象进行取地址(&)时会被调用.1.构造函数法和..
分类:
编程语言 时间:
2016-07-14 22:21:13
阅读次数:
299
1 缺省函数 设计一个类,没有成员函数 (member function),只有成员数据 (member data) 1.1 特殊成员函数 C++98 编译器会为其隐式的产生四个函数:缺省构造函数,析构函数;拷贝构造函数,拷贝赋值算子 而 C++11 编译器,除了产生这四个函数外,还会多产生两个函数 ...
分类:
编程语言 时间:
2016-07-12 10:32:30
阅读次数:
239
1 缺省函数 设计一个类,没有成员函数 (member function),只有成员数据 (member data) 1.1 特殊成员函数 C++98 编译器会为其隐式的产生四个函数:缺省构造函数,析构函数;拷贝构造函数,拷贝赋值算子 而 C++11 编译器,除了产生这四个函数外,还会多产生两个函数 ...
分类:
编程语言 时间:
2016-07-12 07:52:38
阅读次数:
277
当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数: (1)一个对象以值传递的方式传入函数体 (2)一个对象以值传递的方式从函数返回 (3)一个对象需要通过另外一个对 ...
分类:
编程语言 时间:
2016-07-08 01:35:17
阅读次数:
246