| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 422 人关注过本帖
标题:看到最近有人问复制控制的问题,我也来说两句
只看楼主 加入收藏
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:4 
看到最近有人问复制控制的问题,我也来说两句
说明——以下内容均来自我的C++学习笔记
--------------------------------------
先来说一下复制控制之复制复制构造函数:
1、概念:复制构造函数是一种特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。

2、定义:只有单个形参,而且该形参是对该类类型对象的引用(常用const修饰),这样的构造函数称为复制构造函数。

3、理解:
    (1)、复制构造函数是一个构造函数。
    (2)、只有单个形参,该形参是对本类类型对象的引用。
    (3)、形参常用const修饰。

4、作用:
    (1)、根据另一个同类型的对象显式或隐式初始化一个对象。
    (2)、复制一个对象,将它作为实参传给一个函数。
    (3)、从函数返回时复制一个对象。
    (4)、初始化顺序容器的中元素。
    (5)、根据元素初始化列表初始化数组元素。(数组初始化列表)

5、对于类类型对象:直接初始化与复制初始化的区别

    (1)、直接初始化直接调用与实参匹配的构造函数。
    (2)、复制初始化总是调用复制构造函数。

(一)、深入剖析类类型对象的复制初始化

    复制初始化首先使用指定的构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制到正在创建的对象。

    (1)、知识点回顾——临时对象:在求解表达式时,如果需要一个地方储存其运行结果,编译器会创建一个没有命名的对象,这就是临时对象。在英语中,C++程序员通常用temporary这个术语来代替temporary object。

    例如:string s = "hello ,C++";
    (2)剖析:①编译器首先调用接受一个C风格字符串形参的string构造函数,创建一个临时对象。
           ②编译器使用string复制构造函数将s初始化为那个临时对象的副本。
搜索更多相关主题的帖子: 而且 
2008-05-25 22:01
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
支持一下.
期待楼主解释的更完全,更清楚,比如着重说一下浅拷贝与深拷贝的区别.我先睡觉了,呵呵!!!

i like linux...
2008-05-25 22:46
陈子风
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-3-20
收藏
得分:0 
顶一下     受益匪浅  
2008-05-26 22:04
bibingyan
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:123
专家分:0
注 册:2008-3-16
收藏
得分:0 
顶!我也不是很懂

不嫌恶地狱,不迷恋人间,不羡慕天堂。
2008-05-26 22:53
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
自已写得程序就懂了,书上例子很多吧.

i like linux...
2008-05-26 22:54
快速回复:看到最近有人问复制控制的问题,我也来说两句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014484 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved