我正在尝试做一个指向通用对象类型的指针,但我不知道如何访问任意对象方法。
我尝试定义一个接口
class InterfaceProtocol{
public:
virtual void accessBlock(unsigned long int address, unsigned long int size, bool read) = 0;
};
我在另一个类中继承的
class SACache : public InterfaceProtocol{
void* next
virtual void accessBlock(unsigned long int address, unsigned long int size, bool read);
}
在某个时刻,我希望最后一个类使用从 InterfaceProtocol 继承的 accessBlock 函数访问通用对象
void SACache::accessBlock(unsigned long int address, unsigned long int size, bool read){
next.accessBlock(blockAddress,blockSize,YES);
}
我在面向对象方面确实很新,但就我而言,这里不需要模板,主要是因为我可以保证通用对象也将继承 InterfaceProtocol 方法。
next
是一个 void*
,这意味着它绝对是指向任何东西的指针,就像 int
一样。如果您希望它始终指向 InterfaceProtocol
,请写 InterfaceProtocol* next;
。
并且,
next
是一个指针。它所指向的东西是*next
。如果你想调用它所指向的函数,请写 (*next).accessBlock
或简称 next->accessBlock
。