有关C++的拷贝构造函数

原创 2015年07月08日 09:15:41

重新复习一遍C++的

constructor, construct with arguments, copy constructor, copy assignment

下面重点要强调的是有关copy constructor,constructor ,和 copy assignment。

如果拷贝参数是对象的话,注意要使用常引用即 const &。 如果返回值是对象的话,返回的也是该对象的引用。


#include "iostream"
#include "string"

class CTime{
        std::string *ptr;
    public:
        //default constructor
        CTime(){}
        //constructor with one parameter
        CTime(const std::string &str):ptr(new std::string(str)){}
        //Copy constructor
        CTime(const CTime &x):ptr(new std::string(x.getContent())){}
        //copy assignment
        CTime& operator =(const CTime& x){
            delete ptr;
            ptr = new std::string(x.getContent());
            return *this;
        }
        //destructor
        ~CTime(){
            delete ptr;
        }
        //get content
        const std::string& getContent() const{
            return *ptr;
        }
};

int main(){
    CTime Timea("this is 11 o\'clolck ");
    CTime Timeb("24");
    CTime Timec(Timea);
    Timeb = Timea;
    std::cout << Timea.getContent() << std::endl;
    std::cout << Timeb.getContent() << std::endl;
    std::cout << Timec.getContent() << std::endl;
    return 0;
}


  




c++ 拷贝构造函数优缺点

前一段时间去面试,被人问了一个这个问题, 突然不知道怎么回答了, 后来查了查,才知道原来是怎么样了, 现在总结一下吧。 拷贝构造函数和赋值运算符用于创建对象的副本。在某些情况下由编译器隐式调用拷贝构...
  • horstlinux
  • horstlinux
  • 2014年11月12日 18:59
  • 2670

C++ - 默认复制构造函数 执行 浅拷贝

默认复制构造函数 执行 浅拷贝 本文地址: http://blog.csdn.net/caroline_wendy/article/details/23941807 C++, 会默认生成一个复...
  • u012515223
  • u012515223
  • 2014年04月17日 16:29
  • 3299

C++ 拷贝构造函数中浅拷贝与深拷贝

浅拷贝构造函数 看一段拷贝构造函数的代码#include #include using namespace std; class Array{ public : Array(){ ...
  • libin66
  • libin66
  • 2016年11月12日 13:48
  • 1458

C++那些细节--拷贝构造函数

关于C++拷贝构造函数
  • puppet_master
  • puppet_master
  • 2015年07月19日 16:48
  • 903

C++中构造函数,拷贝构造函数和赋值函数的区别和实现

C++中一般创建对象,拷贝或赋值的方式有构造函数,拷贝构造函数,赋值函数这三种方法。 构造函数就是当创建一个类的对象时,它被调用来对类的数据成员进行初始化和分配内存。拷贝构造函数是一种特殊的构造函数,...
  • zcyzsy
  • zcyzsy
  • 2016年08月05日 21:54
  • 10971

c++学习笔记(二):c++拷贝构造函数应用的四种场景

#include using namespace std; //拷贝构造函数的第一、二应用场景 class AA { public: AA() //无参构造函数 默认构造函数 { cout...
  • my_sky2012
  • my_sky2012
  • 2015年10月21日 16:33
  • 863

c++的堆与拷贝构造函数

关于堆的知识 一般情况下c程序会存放在rom或flash中,运行再拷贝到对应的内存中。c++程序中内存分别存放不同的信息, (1)全局数据区:存放全局变量、常量、静态数据 (2)代码区:存放程序...
  • qq_35644234
  • qq_35644234
  • 2016年09月30日 12:54
  • 733

C++ Copy Constructor (拷贝构造函数,复制构造函数)

1.什么是Copy Constructor? Copy Constructor 是一个特殊的构造函数,一般只有一个参数,这个参数一般是用const修饰的,对自己类的一个引用(reference)。...
  • fox64194167
  • fox64194167
  • 2014年03月14日 08:12
  • 6311

C++基础之编写String类(拷贝构造函数)

拷贝构造函数的本质:一种函数,特殊的构造函数 拷贝构造函数的写法:和...
  • PanPen120
  • PanPen120
  • 2014年08月15日 15:07
  • 3126

深入C++的拷贝构造和赋值函数 (深拷贝,浅拷贝)

参考了:点击打开链接以及《高质量程序设计指南C++/C语言》 说明 拷贝构造函数是一种特殊的构造函数。相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。 函数的名称必须和类名称一致。 它...
  • ywok526
  • ywok526
  • 2014年08月13日 11:54
  • 1075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有关C++的拷贝构造函数
举报原因:
原因补充:

(最多只允许输入30个字)