鱼C论坛

 找回密码
 立即注册
查看: 3076|回复: 4

C++重载运算符问题

[复制链接]
发表于 2013-10-7 10:53:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "iostream"

using namespace std;

class MyClass
{
public:
        MyClass()
        {
                n=0;
                cout<<"默认构造函数...\n";
        }
        MyClass(int t)
        {
       n=t;
                   cout<<"默认带一个参数构造函数...\n";
        }
        ~MyClass()
        {
                        cout<<"默认析构函数...\n";
        }
        int get()
        {
                return n;
        }
        MyClass(MyClass&r)
        {
                n=r.get();
                cout<<"复制构造函数\n";
        }

private:
        int n;
};


int main()
{
        MyClass a(1), b(2);
   a=b;
        cout<<"a:"<<a.get()<<endl;
        cout<<"b:"<<b.get()<<endl;
        return 0;
}
这次是关于赋值运算符的重载实现对象间的赋值运算。
我想问一下我在类中并没有声明一个重载=函数,编译器这个时候是不是默认提供了一个。
还有复制构造函数是不是只能用到对象的初始化时候上。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-7 11:52:43 | 显示全部楼层
我想问一下我在类中并没有声明一个重载=函数,编译器这个时候是不是默认提供了一个。
是的。

还有复制构造函数是不是只能用到对象的初始化时候上。
我们知道,复制构造函数是一种构造函数,构造函数智能用于初始化对象。所以,复制构造函数只能用于初始化对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-7 12:05:39 | 显示全部楼层

{:1_1:} 嘿嘿 又是你帮我解答问题了 感觉论坛好有爱啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-10-7 12:32:18 | 显示全部楼层
类的赋值好像有默认的,如果类中还包含有指针,用默认的赋值将可能导致一些问题
复制构造函数其实就是一个构造函数,构造函数的的功能就是初始化对象。
我也是一名新手,这是我的分析,不知道对不对:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-7 12:47:59 | 显示全部楼层
骇客不会飞 发表于 2013-10-7 12:32
类的赋值好像有默认的,如果类中还包含有指针,用默认的赋值将可能导致一些问题
复制构造函数其实就是一个 ...

默认复制构造函数包含指针的话需要深层复制这个我知道   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 00:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表