`
isiqi
  • 浏览: 16027760 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

c++赋值运算符重载

 
阅读更多

赋值运算符重载


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;

则不会调用拷贝构造 只会调用赋值运算符重载



本文来源:http://blog.csdn.net/pzw0416/article/details/7389309

如需转载,请注明出处。。


分享到:
评论

相关推荐

    c++赋值运算重载

    c++赋值运算符重载 stringvar

    C++类StringVar中的赋值运算符重载

    《C++程序设计》(第八版)类StringVar中的赋值运算符重载

    c++ 递增运算符重载案例代码

    参考“黑马程序员”c++ 课程 递增运算符重载 如有侵权请联系删除 ...赋值运算符重载 关系运算符重载 函数调用运算符重载 加号运算符重载 左移运算符重载 供和我一样的c++新手参考,大家一起加油!

    C++运算符重载规则详解

    C++允许重载的运算符和不允许重载的运算符 ...C++对运算符重载定义了如下几条规则。 1) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 例如,有人觉得BASIC中用“**“作为幂运算符很方便

    C++运算符重载 详细介绍PPT

    详细介绍 C++运算符重载 的PPT 文中部分内容: 下标运算符“[ ]”重载 C++把下标运算符[ ]看成一个双目运算符,其操作数为<基本表达式>和<表达式>,对应的运算符为operator[ ],必须重载为一个成员函数。对于下标...

    C++运算符重载的思维导图

    运算符重载 、运算符重载规则 ...2.重载赋值运算符 ①条件 ②代码 3.重载运算符[和O) 前提 ②重载下标运算符[ ③重载函数调用符 0④重载流插入和流提取运算符 a.前提 四、类类型转换 1.构造函数构造 2.类型转换函数

    详解C++赋值操作符重载

    主要介绍了C++赋值操作符重载的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下

    C++异常安全的赋值运算符重载

    题目要求:  类CMyString的声明如下: ...  请实现其赋值运算符的重载函数,要求异常安全,即当对一个对象进行赋值时发生异常,对象的状态不能改变。  参考资料剑指offer第1题。  题目分析:  要异常

    c++运算符重载矩阵运算

    c++运算符重载矩阵运算 题目:对具有同行列数的整形矩阵进行加、减、乘、转置、赋值运算

    详解C++ 拷贝构造函数和赋值运算符

    本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。有需要的朋友可以看下

    运算符重载

    C++运算符重载:自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的...

    c++运算符重载

    最全的c++运算符重载,包括赋值、比较、自增自减,包括成员函数和友员函数方式。

    简单了解C++语言中的二元运算符和赋值运算符

    主要介绍了C++语言中的二元运算符和赋值运算符,文中列出了可重载的运算符列表,需要的朋友可以参考下

    C++若干疑难问题分析

    若干关于C++的问题释义,比如C++赋值运算符重载函数不能被派生类继承的真实原因

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

    今天突然被搞蒙,重新复习了一下 多说无益,直接上代码 #include #include using namespace std; class A { public: char * x; int y; A() { cout<<无参构造<x>y=0; } A(int n) ...拷贝构造<x>x,a.x

    运算符重载详解

    C++中一个很重要的知识点 运算符重载 在实际开发中 很多技术人员都会忽视的

    面向对象程序设计C++运算符重载

    计算机中的颜⾊采⽤RGB颜⾊系统,也就是每种颜色红、绿...3. 用运算符重载的方式运算。 4. 在上述运算过程中,实现颜色值的边界检查,即运算过程中,某个颜色分量值大于255,则直接赋值255,如果值小于0,则直接赋值0。

    C++—运算符重载(1)

    运算符重载功能很强大,可以方便很多操作 这些简单看一下它都有哪些用法: 比如,当我们要对两个字符串直接拼接在一起的时候,通常我们利用append()函数, 那能不能简单地直接用+号连接呢,类似于下面 ’ + ’ 号...

    C++ 类的赋值运算符”=”重载的方法实现

    什么类需要重载赋值运算符 先来看一个普通类的直接赋值。 #include using namespace std; class person{ int age; public: person(const int& a=10):age(a){} //构造函数 ~person(); //析构函数 void showAdd...

    C++中对象的赋值与复制操作详细解析

    本来赋值运算符“=”只能用来对单个的变量赋值,现在被扩展为两个同类对象之间的赋值,这是通过对赋值运算符的重载实现的。 实际上这个过程是通过成员复制来实现的,即将一个对象的成员值一一复制给另外一个对象的...

Global site tag (gtag.js) - Google Analytics