分类目录归档:未分类

赋值运算符的重载

赋值运算符的重载赋值运算符 ‘=’ 重载赋值运算符 两边的类型 可以 不匹配把一个 int类型变量 赋值给一个 Complex对象把一个 char * 类型的字符串 赋值给一个 字符串对象需要 重载赋值运算符 ‘=’赋值运算符 “=” 只能重载为 成员函数编写一个长度可变的字符串类String包含一个char * 类型的成员变量指向动态分配的存储空间该存储空间用于存放 ‘0’ 结尾的字符串string s = "hello"; // =是初始化语句

运算符重载的基本概念

运算符C++预定义表示对数据的运算+, -, *, /, %, ^, &, ~, !, |, =, , != ……只能用于基本的数据类型整型, 实型, 字符型, 逻辑型……自定义数据类型与运算符重载C++提供了数据抽象的手段:用户自己定义数据类型 -- 类调用类的成员函数 --> 操作它的对象类的成员函数--> 操作对象时,很不方便在数学上, 两个复数可以直接进行+/-等运算Vs. 在C++中, 直接将+或-用于复数是不允许的运算符重载对抽象数据类型也能够直接使用C++提供的运算符程序更简洁代码更容易理解例如:complex_a和complex_b是两个复数对象求两个复数的和, 希望能直接写:complex_a + complex_b对已有的运算符赋予多重的含义使同一运算符作用于不同类型的数据时 有 不同类型的行为目的扩展C++中提供的运算符的适用范围, 以用于类所表示的抽象数据类型同一个运算符, 对不同类型的操作数, 所发生的行为不同(5,10i) + (4,8i) = (9,18i)5 + 4 = 9运算符重载的实质是函数重载返回值类型 operator 运算符(形参表)