Tôi đã tạo một lớp singleton sử dụng phương thức GetInstance()
để lấy địa chỉ mẫu (con trỏ). Bên trong lớp tôi có một mảng dài unsigned dài mà tôi đã tạo ra operator []
cho nó (truy cập trực tiếp vào mảng). Làm cách nào tôi có thể sử dụng con trỏ tôi nhận được từ GetInstance
để sử dụng [] operator
? Tôi đã thử:C++ sử dụng dấu ngoặc vuông có con trỏ đến ví dụ
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]=...
Nhưng nó không hoạt động ... có cách nào tôi có thể sử dụng dấu ngoặc để truy cập trực tiếp bằng cách sử dụng con trỏ lớp?
Cảm ơn!
Tại sao bạn muốn có con trỏ? 'static risc & getInstance()' cũng hoạt động tốt. – MSalters
Hướng dẫn ... – SagiLow