dongdongxhh1 2017-07-05 10:28 采纳率: 0%
浏览 491

请问C++语言运用模板的方式实现复数运算的运算符和函数的重载实现?

请问C++语言运用模板的方式实现复数运算的运算符和函数的重载实现?怎么实现复数模板?

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 19:23
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/624867
    • 这篇博客你也可以参考下:C++(运算符重载,运算符重载的两种方式详解)
    • 这篇博客也不错, 你可以看下C++(运算符重载,运算符重载的两种方式详解)
    • 同时,你还可以查看手册:c++-运算符重载 中的内容
    • 除此之外, 这篇博客: C++(运算符重载,运算符重载的两种方式详解)中的 类的转换(类型转换构造函数) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      当我们使用基本类型的时候如int和double直接可以灵活的进行转换,那么如果需要将Teacher类的对象转换成Student类的对象呢?
      这时候我们就需要 类型转换构造函数
      如果函数只需要一个参数,并且这个参数不是当前类类型的参数,那么这个函数就是类型转换构造函数

      下面的例子是将一个秒数(其他类的对象)转换成Time类的对象。

      class Time
      {
      public:
          Time(long long = 0); // 类型转换构造函数
          void ShowTime();
      private:
          int nHour;
          int nMinute;
          int nSecond;
      };
      
      Time::Time(long long sec)
      {
          sec = sec % (24 * 3600); 
          nHour = sec / 3600;
          sec %= 3600;
          nMinute = sec / 60;
          nSecond = sec % 60;
      }
      

      下面的例子是将Time类的对象转换成秒数(其他类的对象)

      class Time
      {
      public:
          Time(int = 0, int = 0, int = 0);
          operator int();//类型转换构造函数
          void ShowTime();
      private:
          int nHour;
          int nMinute;
          int nSecond;
      };
      
      Time::operator int()
      {
          return nHour * 3600 + nMinute * 60 + nSecond;
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码