类方法访问

时间:2011-01-27 18:37:55

标签: c++ embedded

有人可以解释一下这两个声明的区别吗?

// Call super class method
This->objClass->super->OnConnect( (BasicIoControlType*)This );

// Call super class method
ClipListIoCtrlClassDef.super->OnConnect( (BasicIoControlType*)this );

1 个答案:

答案 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。,