鱼C论坛

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

C++重载运算符问题

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

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

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

x
  1. #include "iostream"

  2. using namespace std;

  3. class MyClass
  4. {
  5. public:
  6.         MyClass()
  7.         {
  8.                 n=0;
  9.                 cout<<"默认构造函数...\n";
  10.         }
  11.         MyClass(int t)
  12.         {
  13.        n=t;
  14.                    cout<<"默认带一个参数构造函数...\n";
  15.         }
  16.         ~MyClass()
  17.         {
  18.                         cout<<"默认析构函数...\n";
  19.         }
  20.         int get()
  21.         {
  22.                 return n;
  23.         }
  24.         MyClass(MyClass&r)
  25.         {
  26.                 n=r.get();
  27.                 cout<<"复制构造函数\n";
  28.         }

  29. private:
  30.         int n;
  31. };


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

使用道具 举报

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

还有复制构造函数是不是只能用到对象的初始化时候上。
我们知道,复制构造函数是一种构造函数,构造函数智能用于初始化对象。所以,复制构造函数只能用于初始化对象。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

{:1_1:} 嘿嘿 又是你帮我解答问题了 感觉论坛好有爱啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

默认复制构造函数包含指针的话需要深层复制这个我知道   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-8 04:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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