C++ 拷贝构造和赋值运算符重载

原创 2012年03月24日 08:47:04

赋值运算符重载


Thing &operator=(const Thing &t){

 //判断是否赋值本身

   if(*this!=t){

      delete name;
      name=new Thing[strlen(t.name)+1];
      strcpy(name,t.name);

      //其他变量也得赋值
   }

}

拷贝构造

Thing::Thing(const Thing &t){
      delete name;
      name=new Thing[strlen(t.name)+1];
      strcpy(name,t.name);
      //其他变量也得赋值
}
一  用一个已经存在的对象去创建另一个对象
1:
Thing t;
Thing tt(const Thing &t);
2:
Thing *t=new Thing(t);
二   函数的参数是类类型。传值
Thing t;
fun(t);
void fun(Thing t){}
三  函数的返回值是类类型,返回一个对象
Thing fun(){
   return t;
}
四  创建对象时如果用赋值运算符,如果左边的对象是没有创建的而右边是已经创建的
Thing t;
Thing tt=t;

Thing t;
Thing tt;
tt=t;
则不会调用拷贝构造  只会调用赋值运算符重载

相关文章推荐

C++的缺省的拷贝构造函数和赋值运算符重载函数

C++的缺省的拷贝构造函数和赋值运算符重载函数
  • wu4long
  • wu4long
  • 2014年02月13日 18:23
  • 1024

C++之派生类的拷贝构造与赋值运算符重载

这里只说一下为什么派生类在拷贝构造器和赋值运算符重载中一些注意语法: 一、派生类的拷贝构造器1.派生类的拷贝构造器跟普通构造器一样,若没有自定义生成,编译器会自动生成拷贝构造器,自动调用父类的拷贝构...

[C++]拷贝构造函数和赋值运算符重载

原文作者:冯明德;补充说明:Shosh 重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子: class CExample { pu...

c++构造函数、拷贝构造函数、析构函数、赋值运算符重载

构造函数 构造函数的特点: 1.是一个特殊的成员函数; 2.名字与类名相同; 3.有初始化列表; 4.创建类类型对象时,由编译器自动调用,在对象的声明周期内只调用一次; 5.构造函数可以重载,实参决定...

总结c++类的构造函数 拷贝构造函数 析构函数 赋值运算符重载的特点以及函数调用顺序

对 c++类成员函数中的构造函数 拷贝构造函数 析构函数 赋值运算符重载的一些特点以及函数调用顺序,并附上例子,希望对大家有帮助,有错误大家可以指出来。...

c/c++ 构造函数、拷贝构造函数、析构函数和赋值运算符重载

构造函数 #include "stdafx.h" #include using namespace std; class String { public: String() {} 类的实例化...

C++ 拷贝构造函数(即复制构造函数)和赋值运算符重载(有说赋值构造函数)区别

如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。 倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类String 的两个对象a,b 为例,假设a.m_da...

C++ 运算符重载和拷贝构造

为了直观上观察到拷贝构造函数的调用,结合运算符重载来分析,有一下代码:// 运算符重载.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include usi...

拷贝构造函数与赋值运算符重载的区别

拷贝构造函数应用的场合由以下几个方面:   1 函数的参数是一个对象,并且是值传递方式   2 函数的返回值是一个对象,并且是值传递方式   3 用一个对象初始化另外一个对象...
  • swgshj
  • swgshj
  • 2014年07月16日 09:45
  • 1490

[ZZ]重载赋值运算符与拷贝构造函数的区别

比较运算符重载函数与拷贝构造函数的区别 原文链接:http://blog.sina.com.cn/s/blog_4c98b9600100api4.html#include using namesp...
  • leonsc
  • leonsc
  • 2011年03月02日 20:41
  • 702
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 拷贝构造和赋值运算符重载
举报原因:
原因补充:

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