Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:应为‘’;或‘’;在‘之前&’;代币_C++_Operator Overloading - Fatal编程技术网

C++ 错误:应为‘’;或‘’;在‘之前&’;代币

C++ 错误:应为‘’;或‘’;在‘之前&’;代币,c++,operator-overloading,C++,Operator Overloading,错误: expected ‘,’ or ‘...’ before ‘&’ token randomNumberMagnifier.h:32: error: ISO C++ forbids declaration of ‘randomNumberMagnfier’ with no type randomNumberMagnifier.h:32: error: ‘std::ostream& randomNumberMagnifier::operator<<(std::os

错误:

expected ‘,’ or ‘...’ before ‘&’ token
randomNumberMagnifier.h:32: error: ISO C++ forbids declaration of ‘randomNumberMagnfier’ with no type
randomNumberMagnifier.h:32: error: ‘std::ostream& randomNumberMagnifier::operator<<(std::ostream&, int)’ must take exactly one argument
[singha1@cs1 p4]$ 
#ifndef RANDOMNUMBERMAGNIFIER_H
#define RANDOMNUMBERMAGNIFIER_H
#include <iostream>
#include <fstream>

using namespace std;
class randomNumberMagnifier
{
  int addFactor;
  int multFactor;
  bool addOn;
  bool multOn;
  int randomNumber;
  static const int MAX_ADD_FACTOR = 100;
  static const int MAX_MULT_FACTOR = 20;
  static const int MAX_RANDOM = 200;

 public:
  randomNumberMagnifier();

  randomNumberMagnifier(const randomNumberMagnifier& arandom);
  //~randomNumberMagnifer();                                                         

  randomNumberMagnifier& operator=(const randomNumberMagnifier& rhs );
  //  randomNumberMagnifier& operator==(const randomNumberMagnfier& rhs );           
  ostream&  operator<<(ostream& o, const randomNumberMagnfier& rhs );
  randomNumberMagnifier(bool aState, bool mState);

  int randomMagnifier();

  int getAdd();
  int getMult();

  bool getAddState();
  bool getMultState();

  int getRandomNumber();

  void display(ostream& out) const;



};
#endif
ostream& operator<<(operator& out, const randomNumberMagnifier& rhs)
{
  rhs.display(out);
  return out;
  //cout << this->getAdd()=rhs.getAdd();                                                  
  /*                                                                                      
  cout << this->multFactor;                                                               
  cout << this->addOn;                                                                    
  cout << this->multOn;                                                                   
  cout << this->randomNumber;                                                             
  */
}

void randomNumberMagnifier :: display(ostream& out)const
{
  out << addFactor << multFactor << randomNumber;
}
“&”标记之前应为“,”或“…” 随机数放大镜。H:32:错误:ISO C++禁止声明“无编号放大倍数”,没有类型。
randomNumberMagnifier.h:32:error:'std::ostream&randomNumberMagnifier::operator
ostream&operator这只是代码中的一个输入错误。您编写了
randomNumberMagnifier
而不是
randomNumberMagnifier
仍然存在此错误:“std::ostream&randomNumberMagnifier::operator谢谢!!!即使在你们指出它之后,我也花了一段时间。仍然有这个错误:“std::ostream&randomNumberMagnifier::operator@AmaninderSingh建议在类外实现此函数。的确,
运算符它起作用了,但是您能解释一下为什么需要在类外实现它吗?
  ostream&  operator<<(ostream& o, const randomNumberMagnfier& rhs );