CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

重栽运算符???错在哪里??

楼主jettylee(要学的还很多~~~)2004-02-01 19:44:57 在 C/C++ / C++ 语言 提问

float   operator   ^(float   a,int   n)  
  {  
          float   ans=1;  
          for(int   i=1;   i<=n;   i++)  
                  ans*=a;  
          return   ans;  
  }  
   
  我用DEV-C++编译   出错  
   
  `float   operator^(float,   int)'   must   have   an   argument   of    
   
  哪里错了啊??? 问题点数:20、回复次数:9Top

1 楼BluntBlade(信仰迷离·重构之道,在于Redo/Undo之间)回复于 2004-02-01 19:52:52 得分 2

重载运算符,必须有一个参数是用户定义类型。Top

2 楼LinuxPanther(Bruce Lee)回复于 2004-02-01 20:05:08 得分 2

“^”操作符是一个位操作符。你这样定义违背了它的原意Top

3 楼LinuxPanther(Bruce Lee)回复于 2004-02-01 20:07:42 得分 2

在《C++primer》中说“程序员只能位类类型或枚举类型的操作数定义重载操作数”Top

4 楼jettylee(要学的还很多~~~)回复于 2004-02-01 21:24:38 得分 0

楼上三个人……  
   
  我听谁的啊?Top

5 楼BluntBlade(信仰迷离·重构之道,在于Redo/Undo之间)回复于 2004-02-01 21:27:30 得分 2

呵呵,也许三个都对呢?Top

6 楼wosuntou(莴笋头)回复于 2004-02-01 21:29:24 得分 0

1楼最对!!!Top

7 楼BluntBlade(信仰迷离·重构之道,在于Redo/Undo之间)回复于 2004-02-01 21:33:55 得分 0

这种回答没有最对的……  
  大家一起来研究理解。Top

8 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2004-02-01 21:57:07 得分 10

的确需要一个参数是类类型。  
  这好比你不能进行int&   operator++(int&);的重载,因为这些都是语言预先定义好的,而且意图明确的运算符,所以当你进行这样的重载时,编译器会阻止你。  
   
  class   A{  
        float   f;  
  public:  
        A(float   p=0):f(p){}  
        float   operator^(int   n){  
              float   ans=1;  
              for(int   i=1;i<=n;i++)  
                      ans*=f;  
              return   ans;        
        }  
  };  
   
  int   main(){  
  A   a=5;  
  cout<<(a^2)<<endl;     //用括号,因为^的优先级比<<低  
  }Top

9 楼BluntBlade(信仰迷离·重构之道,在于Redo/Undo之间)回复于 2004-02-01 21:59:16 得分 2

不一定是类类型,只要是用户定义类型(UDT)就可以了。Top

相关问题

  • 运算符重载时代码出错
  • 重载运算符
  • ★★请教加法运算符重载的错误★★
  • c++运算符重载问题,调试出错
  • 怎样重载(),[],=运算符
  • 如何重载+运算符?
  • 关于运算符重载。。
  • 关于运算符重载
  • 如何重载运算符<<
  • 能否重载()运算符?

关键词

  • float

得分解答快速导航

  • 帖主:jettylee
  • BluntBlade
  • LinuxPanther
  • LinuxPanther
  • BluntBlade
  • Jinhao
  • BluntBlade

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo