有人可以解释一下这两个声明的区别吗?
// Call super class method
This->objClass->super->OnConnect( (BasicIoControlType*)This );
// Call super class method
ClipListIoCtrlClassDef.super->OnConnect( (BasicIoControlType*)this );
答案 0 :(得分:1)
有问题的代码:
// Call super class method
This->objClass->super->OnConnect( (BasicIoControlType*)This );
// Call super class method
ClipListIoCtrlClassDef.super->OnConnect( (BasicIoControlType*)this );
这个原则上可以是C ++,但肯定看起来不像C ++。
它是C ++,那么除了要调用OnConnect
的对象规范之外的调用没有区别。
在第一种情况下,如果这是C ++,你可能有一个指向This
的指针指向一个成员objClass
的对象,它是指向一个成员的指针。具有成员super
的对象,该成员使用方法OnConnect
指向对象。我必须编写“可能”,因为C ++允许重载->
运算符,这意味着那些beasties不一定是原始指针。 如果这是C ++。
在第二种情况下,如果这是C ++,你有一个对象ClipListIoCtrlClassDef
,它有一个成员super
,它可能是指向一个对象的指针OnConnect
方法。我再次写“可能”,因为C ++允许->
重载。而且你没有提供必要的背景。
可能是您想知道o.method()
和p->method()
之间的区别。
如果是这样,内置->
只是写(*p).method()
的简写,其中*
是指针解引用运算符。如果您不熟悉这些,请查阅您的C ++教科书。如果你没有教科书:你需要一本教科书(例如,Bjarne Stroustrup的最新版本)。
干杯&第h。,