Sag*_*Low 12 c++ pointers class operand
我创建了一个单例类,它使用GetInstance()方法获取实例地址(指针).在类中,我有一个unsigned long int数组,我已经operator []为它创建了它(直接访问数组).我如何使用我得到的指针GetInstance才能使用[] operator?我试过了 :
class risc { // singleton
protected:
unsigned long registers[8];
static risc* _instance;
risc() {
for (int i=0;i<8;i++) {
registers[i]=0;};
}
public:
unsigned long operator [](int i) const {return registers[i];}; // get []
unsigned long & operator [](int i) {return registers[i];}; // set []
static risc* getInstance() { // constructor
if (_instance==NULL) {
_instance=new risc();
}
return _instance;
}
};
risc* Risc=getInstance();
*Risc[X]=...
Run Code Online (Sandbox Code Playgroud)
但它不起作用...有没有办法可以使用括号直接使用类指针访问数组?
谢谢 !
jua*_*nza 32
试试这个:
(*Risc)[X]=...
Run Code Online (Sandbox Code Playgroud)
方括号运算符优先于指针解引用运算符.也可以通过名称调用运算符,尽管这会产生相当笨重的语法:
Risc->operator[](x) = ...
Run Code Online (Sandbox Code Playgroud)