Örnek adresini (işaretçi) almak için GetInstance()
yöntemini kullanan bir tek sınıf oluşturdum. Sınıfın içinde, imzasız uzun bir int dizim var, bu yüzden bunun için operator []
'u yarattım (diziye doğrudan erişim). [] operator
'u kullanmak için GetInstance
'dan aldığım işaretçiyi nasıl kullanabilirim?C++ işaretçisiyle köşeli parantezleri kullanarak örnek
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]=...
Ama ben sınıf işaretçi kullanarak doğrudan dizisine erişmek için ayraç kullanabilirsiniz bir yolu yoktur ... çalışmaz: Denedim?
Teşekkürler!
Neden bir işaretçi istiyorsun? Statik risc & getInstance() 'de çalışır. – MSalters
Talimatlar ... – SagiLow