C ++全局重载operator = [英] C++ globally overloaded operator=
本文介绍了C ++全局重载operator =的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,
我有以下代码...
//头文件
struct dataRecord {
size_t id;
char name [gcNameLength];
};
void operator =(dataRecord& adr,const dataRecord& bdr);
编译时gcc给我出现以下错误。
错误:'void operator =(dataRecord& const dataRecord&)'必须是非静态成员函数
感谢您的帮助。
解决方案
c $ c> = 操作
类似的操作:
struct dataRecord {
size_t id;
char name [gcNameLength];
dataRecord& operator =(const dataRecord&){
//在这里写入重载代码
}
};
Possible Duplicate:
What does “operator = must be a non-static member” mean? (C++)
Hi,
I have the following code...
// Header file
struct dataRecord{
size_t id;
char name[gcNameLength];
};
void operator=(dataRecord &adr, const dataRecord &bdr);
How ever gcc gives me the following error when compiling.
error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
Thanks for the help.
解决方案
You need to overload =
operation on the struct dataRecord
itself.
Something like:
struct dataRecord{
size_t id;
char name[gcNameLength];
dataRecord& operator= (const dataRecord&) {
// write overload code here
}
};
这篇关于C ++全局重载operator =的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文