有关运算符重载的问题
#include <iostream>
using namespace std;
class son
{
public:
int age;
son():age(0){}
son(int iAge)
{
this->age = iAge;
}
son(const son & rhs)
{
this->age = rhs.age;
}
// Operator
son & operator = ( const son & rhs);
};
son & son::operator =( const son &rhs)
{
if (this == &rhs) return *this;
return *(new son(rhs));
}
void main(void)
{
son s1(10);
son s2;
s2 = s1;
cout << "s1 age is:" << s1.age << endl;
cout << "s2 age is:" << s2.age << endl;
}// main
上例中输出的s2的age是0,但如果在main函数中这样写
son s2 = s1;
则输出的s2的age是10,即与s1相同,为什么?
...全文
相关推荐
C++运算符重载教学和编程中易被忽视的问题
C++运算符重载教学和编程中易被忽视的问题
运算符重载:友元(friend)函数问题
运算符重载:友元(friend)函数问题
C#中重载相等(==)运算符示例
主要介绍了C#中重载相等(==)运算符示例,运算符重载一直是一个很诡异事情,本文通过实例探讨由运算符重载引出的一个问题,需要的朋友可以参考下
C#重载运算符详解
本文较为详细的描述了重载运算符的方法。一般来说,重载运算符在实际的项目开发中会经常的用到,但如果某些自定义类型通过简短几行代码重载一些常用的运算符(如:+-*/),就能让编程工作带来方便;重载运算符就是告诉编译器+-*/等运算符对于自定义类型进行什么样的操作,在代码中需要注意几点。 一、尽可能的不要改变运算符本身的含义 二、所有的运算符重载都必须声明为public和static 三、不同于扩展方法,所重载的方法必须是在被重载的类型内部,且用关键字operator C#中的两个字符串相加,实际上是连接两个字符串,假如有两个EmployeeDetail类型相加得到一个EmployeeCollect
C++虚函数、虚基类、C++实例、运算符重载
C++虚函数、虚基类、C++实例、运算符重载


