2 u014440875 u014440875 于 2014.03.30 00:59 提问

c++的运算符重载冲突问题

在一个类中,重载了运算符“+”和“=”;
"+" 运算符返回值是这个类的对象;
当表达式 C = A + B;是否冲突了?
谢谢。

2个回答

qq051121
qq051121   2014.04.06 20:56

A+B 如果不是返回引用的话那么是个临时对象,再将一个对象 调用重载的 = ,我觉得不好冲突啊。
你写的程序冲突了吗?

u012492669
u012492669   2014.04.13 19:44

注意是不是deep的拷贝了,如果不是deep的拷贝的话,指针类的,&类的,和new有关的时候,可能会delete多次
关键是一个temp的对象离开了语句,就自己销毁了,然后你没有深拷贝就是指向了一个被delete过得区域

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++_运算符重载的注意事项
1、重载操作符没必要一定是成员函数,还可以是友元函数。 2、重载操作符函数为成员函数主要是你需要操作类内部的成员, 必须是成员函数或友元函数才行。 3、至于由深浅拷贝的原因要使其成为成员函数,这个不知道。 4、如果运算符被重载为全局函数,那么只有一个参数的运算符叫做一元运算符,有两个参数的运算符叫做二元运算符。 如果运算符被重载为类的成员函数,那么一元运算符没有参数,二元
c++运算符重载练习
//全局函数和静态函数的转换 #include using namespace std; class Test { public: Test(int a = 0, int b = 0) { this->a = a; this->b = b; } public: int a; int b; public: //全局函数 Test T_add(Test &t1, Test &
矩阵求和-重载运算符
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 5 月 13 日 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述:两个2行3列的矩阵 *问题描述:有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使
C语言之重载运算符()/[]/++/->等运算符
C语言之重载运算符()/[]/++/->等预算符文章链接:知识点 重载()运算符; 重载[]运算符; 重载++和->运算符; 新名词记录{operator} 概述operator操作符一文包括两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。这是C++和pascal扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要
深入解析C++输入输出运算符重载
其实算不上什么深入解析,只不过最近看CArchive类的实现,其中一些写法完全颠覆了我对输入输出运算符重载的一些理解,所以在这里mark一下。        我们以输出运算符为例。首先输出运算符重载的一般形式是 friend ostream& operator(ostream& o,const ClassName& c);[1]         ostream是c++流输出的
【C++】运算符重载总结
运算符重载的概念和语法 重载,就是赋予新的含义,运算符重载和函数重载类似,同一个运算符可以有不同的功能。 运算符重载的方式就是定义一个函数,在函数体内实现想要的功能,当用到该运算符时,编译器就会自动调用这个函数。也就是说,运算符重载就是通过函数定义实现的,它本质上是函数重载。 返回值类型 operator 运算符名称(形参列表){ //TODO; } operator是关键字,
C++:运算符重载
C++:运算符重载标签(空格分隔): c++ 作者:陈小默C运算符重载 运算符重载规则 自定义时间运算 重载运算符的两种使用方式 多个重载运算符的连续运算 重载限制 当我们学习C++的时候,一定接触过cout对象,你一定好奇过为什么左移运算符在这里就成了插入运算符了呢?所以这一节我们就来介绍一下吊炸天的C++运算符重载机制。运算符重载规则operatorOP(argument-list)重载运算符
C++ 流输入输出运算符重载
#include #include #include using namespace std; class Complex { public: Complex(double r=0, double i=0):real(r), image(i) {}; friend ostream& operator<< (ostream &os, const Complex& c);
关于运算符重载的问题
在设计类的时候,经常用到运算符的重载。运算符 operate<< 重载容易出问题。
c++中运算符重载遇到的问题
 h:/test/complex2.h(23) : fatal error C1001: INTERNAL COMPILER ERROR        (compiler file msc1.cpp, line 1786)          Please choose the Technical Support command on the Visual C++          Help m