C++全局重载operator =

Tho*_*mas 2 c++ overloading operators

可能重复:
"operator =必须是非静态成员"是什么意思?(C++)

嗨,

我有以下代码......

// Header file
  struct dataRecord{
     size_t id;
     char name[gcNameLength];
  };

  void operator=(dataRecord &adr, const dataRecord &bdr);
Run Code Online (Sandbox Code Playgroud)

gcc在编译时如何给我以下错误.

error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

Pab*_*ruz 5

您需要对自身进行重载=操作struct dataRecord.

就像是:

struct dataRecord{
   size_t id;
   char name[gcNameLength];
   dataRecord& operator= (const dataRecord&) {
       // write overload code here
   }
};
Run Code Online (Sandbox Code Playgroud)