1.SStud 结构体 SStud ss =s2;//栈内拷贝构造 SStud sss(s2);//栈内拷贝构造 SStud *ps = new SStud(s2);//堆内的拷贝构造 拷贝构造函数: 只有一个构造参数是SStud &ss (指针),拷贝构造函数的特点是,只有一个参数而且类...
分类:
编程语言 时间:
2015-04-16 21:31:52
阅读次数:
124
看过C程序的返回值得处理过程,我们不妨先推测一下C+的返回值处理过程:总体与C的返回过程类似,只不过在上图复制1中并不是直接执行“位逐次拷贝”,而是调用拷贝构造函数(因为此时产生了新对象——temp),在复制2的时候需要调用赋值运算符(因为此时没有新的对象产生)。下面我们进行验证。 class X....
分类:
其他好文 时间:
2015-04-16 01:25:20
阅读次数:
484
1.友元函数 (1)友元函数是定义在一个类外的普通函数。 友元函数和普通函数的定义一样;在类内必须将该普通函数声明为友元。 (2)友元函数不是成员函数。 不能通过对象来调用,而是直接调用;友元函数可以访问类的公有、受保护以及私有成员,但是必须通过对象、对象指针或者对象引用来访问。 2.友元...
分类:
编程语言 时间:
2015-04-16 01:14:32
阅读次数:
166
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=100;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace std;class CA{ public: CA(in....
分类:
编程语言 时间:
2015-04-15 16:35:57
阅读次数:
161
// Operator.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
using namespace std;
class Integer
{
public:
//explicit如果添加explicit就不能进行隐式构造
//隐式构造不会导致拷贝构造函数调用
Integer(int num):m_num...
分类:
编程语言 时间:
2015-04-13 16:42:53
阅读次数:
239
1. 默认成员函数Class Empty{ public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* ...
分类:
编程语言 时间:
2015-04-11 19:19:08
阅读次数:
191
引申问题一:拷贝构造函数中参数是否加const对拷贝构造函数的影响。
网上大多数人对于这个问题的解释只能达到"当你不想对参数进行修改时,就需要加上const关键字"的程度,但是并没有仔细区分这两种情况到底有什么区别。以下面的程序为例:
Dog.h
#ifndef __test_header__Dog__
#define __test_header__Dog__
#include
cl...
分类:
编程语言 时间:
2015-04-03 17:20:15
阅读次数:
157
构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序对象是由“底层向上”开始构造的,当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止。因为,构造函数一开始构造时,总是要调用它的基类的构造函数,然后才开始执行其...
分类:
其他好文 时间:
2015-04-01 23:18:39
阅读次数:
157
C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制:
(1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:
class Rect
{
private:
int width;
int height;
};
Rect rect1;
Rect rect2(rect1); // 使用rect1初始化r...
分类:
编程语言 时间:
2015-04-01 17:54:16
阅读次数:
296
6.2.6 类成员的访问控制类成员包括类的成员变量和成员函数,它们分别用来描述类的属性和行为。而类成员的访问控制决定了哪些成员是公开的,可以被外界访问,也可以被自身访问;哪些成员是私有的,只能在类的内部访问,外界无法访问。就像一个人的钱包,只有他自己能动,别人是不能动的。又如同自己藏的私房钱也只有自...
分类:
编程语言 时间:
2015-04-01 16:47:33
阅读次数:
176