gpt4 book ai didi

C++ 使用方括号和指向实例的指针

转载 作者:IT老高 更新时间:2023-10-28 23:09:31 26 4
gpt4 key购买 nike

我创建了一个单例类,它使用 GetInstance() 方法来获取实例地址(指针)。在类内部,我有一个 unsigned long int 数组,我为它创建了 operator [] (直接访问数组)。如何使用从 GetInstance 获得的指针来使用 [] 运算符 ?我试过了:

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]=...

但它不起作用......有没有办法可以使用括号直接使用类指针访问数组?

谢谢!

最佳答案

试试这个:

(*Risc)[X]=...

方括号运算符优先于指针取消引用运算符。也可以按名称调用运算符,尽管这会导致语法相当笨拙:

Risc->operator[](x) = ...

关于C++ 使用方括号和指向实例的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11069689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com