`
txf2004
  • 浏览: 7028267 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

重载赋值运算符

 
阅读更多
#include<iostream.h>
class sample
{
<wbr>int n;<br> public:<br><wbr>sample(){}<br><wbr>sample(int i){n=i;}<br><wbr>sample &amp;operator=(sample s)<wbr><wbr>//重载赋值运算符<br><wbr>{<br><wbr><wbr>n=s.n;<br><wbr><wbr>return *this;<br><wbr>}<br><wbr>void disp()<br><wbr>{<br><wbr><wbr>cout&lt;&lt;"n="&lt;&lt;n&lt;&lt;endl;<br><wbr>}<br> };<br> void main()<br> {<br><wbr>sample s1(10),s2;<br><wbr>s2=s1;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr>cout&lt;&lt;"s1:";s1.disp();<br><wbr>cout&lt;&lt;"s2:";s2.disp();<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

说明:“operator=成员函数”实现两个对象的赋值。但是如果去掉重载运算符的成员函数,程序依然可以运行。所以正常情况下,系统会为每一个类自动生成一个默认的赋值运算符,用来完成对象之间的赋值运算。

分享到:
评论

相关推荐

    关于拷贝构造函数和赋值运算符

    "关于拷贝构造函数和赋值运算符" 在编程中,包含动态分配成员的类需要提供拷贝构造函数,并重载“=...在编程中,需要为所有包含动态分配成员的类提供拷贝构造函数和赋值运算符的重载,以避免对象之间的不独立和隐患。

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

    - **自赋值优化**:在重载赋值运算符时,需要考虑自赋值的情况,即`a = a;`。这种情况下,通常可以直接返回`*this`,因为不需要进行任何实际的复制操作。 - **拷贝语义与移动语义**:在C++11之后,引入了移动语义,...

    赋值运算符

    如果需要深拷贝,即完全复制对象及其所有数据,可能需要重载赋值运算符。 总之,赋值运算符在Windows应用程序开发中扮演着核心角色,它不仅涉及基本的数据管理,还贯穿于程序的各个层面,从初始化变量到控制流程,...

    java 赋值运算符、拷贝初始化和this指针_.docx

    Alpha &operator=(const Alpha &a) { // 重载赋值运算符 data = a.data; cout !" ; return *this; // 通过this指针返回当前对象 } private: int data; }; int main() { Alpha a1(32); Alpha a2; // 无参...

    运算符重载练习题参考.pdf

    #### 3.4 重载赋值运算符 赋值运算符可以重载为成员函数,实现对象间值的赋值。 ```cpp Sample& operator=(int m) { n = m; return *this; } ``` #### 3.5 重载复合赋值运算符 复合赋值运算符可以重载为类的...

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

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

    1.rar_polynomial_开发Polynomial_开发polynomials_开发polynomial类_类polyn

    实验:开发类Polynomial(多项式)。在类内部,多项式由它的各个项组成的数组...4、 重载赋值运算符(=),把一个多项式赋给另一个。 5、 重载加法赋值运算符(+=)、重载减法赋值运算符(-=)和乘法赋值运算符(*=)。

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

    如果不正确地重载赋值运算符,可能会导致程序崩溃或出现未定义的行为。下面,我们将详细介绍C++类的赋值运算符"="的重载方法实现。 什么类需要重载赋值运算符 ------------------------- 当类的构造函数需要申请堆...

    拷贝构造函数和赋值运算符的区别 (2).docx

    赋值运算符的实现需要确保对象赋值后的状态正确,这通常被称为“赋值运算符的重载”或“深拷贝”。 如果类中没有显式定义赋值运算符,C++会提供一个默认的赋值运算符,这个默认赋值运算符同样可能造成浅拷贝的问题...

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

    例如,重载加运算符可以实现矩阵的加法运算,重载减运算符可以实现矩阵的减法运算,重载乘运算符可以实现矩阵的乘法运算,重载转置运算符可以实现矩阵的转置运算,重载赋值运算符可以实现矩阵的赋值运算。...

    C++运算符重载

    重载赋值运算符需要考虑深拷贝和浅拷贝问题,以防止出现意外的共享数据。通常,一个好的做法是实现"自我赋值"防护,以及正确处理右值引用。 2. 下标运算符`[]` 对于数组或容器类,可以重载下标运算符来访问元素,...

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

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

    C++程序 运算符重载

    为了防止意外,C++提供了特殊的语法来重载赋值运算符。 三、常见的运算符重载示例 1. **算术运算符**:如"+"、"-"、"*"、"/"、"%"等,常用于自定义数据类型的加减乘除。 2. **比较运算符**:"=="、"!="、"、"&gt;"、...

    c++初阶 类和对象 中级篇

    赋值运算符重载的概念是重载赋值运算符,使得能够访问私有变量,实现对象的赋值操作。 六、日期类的实现 日期类的实现包括构造函数、拷贝构造函数、赋值运算符重载等。日期类的实现需要考虑每个月的天数、日期的加...

    拷贝构造函数和赋值运算符的区别 (2).pdf

    在编程领域,特别是C++语言中,理解和正确使用拷贝构造函数和赋值运算符是非常重要的概念。这两个机制都是处理对象复制的过程,但它们在使用场景和行为上有所区别。 首先,构造函数是用于初始化新创建的对象的特殊...

    C++ 部分运算符重载程序

    今天,我们将讨论 C++ 部分运算符重载程序,包括加法运算符、左移运算符、递增运算符、赋值运算符和函数调用运算符等。 一、加法运算符重载 在 C++ 中,加法运算符 (+) 可以重载为局部函数或全局函数。局部函数是...

    c 运算符重载总结.docx

    重载赋值运算符通常采用`operator=`,并遵循“赋值运算符的返回值应当是左操作数的引用”这一约定,以支持连续赋值。此外,还需要考虑防止自我赋值的情况。 8. **内存运算符重载**: 这可能指的是指针或内存管理...

    拷贝构造函数和赋值运算符的区别.pdf

    在处理资源管理类时,赋值运算符也需要特别处理,以防止浅复制导致的问题,这就是所谓的“赋值运算符的自赋值问题”和“深复制/浅复制问题”。 总结起来,拷贝构造函数和赋值运算符的主要区别在于: 1. 调用时机:...

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

    在C++编程中,拷贝构造函数和赋值运算符是两种重要的成员函数,它们用于处理对象间的值复制。这篇文章将深入探讨这两种机制的区别、调用条件以及深拷贝和浅拷贝的概念。 拷贝构造函数是一种特殊的构造函数,它接受...

Global site tag (gtag.js) - Google Analytics