我有以下类(class):
class mem
{
private:
char _memory[0x10000][9];
public:
const (&char)[9] operator [] (int addr);
}
我的目标是能够像数组一样使用
mem
类,而稍后实现会更加复杂。所以,我应该能够这是我尝试过的:
#include "mem.h"
const (&char)[9] mem::operator [] (int addr)
{
return &_memory[addr];
}
但是,它说该方法“必须有一个返回值”,我以为我已将其定义为
(&char)[9]
,但作为此定义,我收到错误消息“需要一个标识符”。 最佳答案
写成以下方式
#include "mem.h"
const char ( & mem::operator [] (int addr) const )[9]
{
return _memory[addr];
}
您也可以添加非常量运算符
char ( & mem::operator [] (int addr) )[9]
{
return _memory[addr];
}
类定义看起来像
class mem
{
private:
char _memory[0x10000][9];
public:
const char ( & operator [] (int addr) const )[9];
char ( & operator [] (int addr) )[9];
}
关于c++ - [] C++ 中 get 和 set 操作的运算符重载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33936685/