在声明和使用静态const积分时,我发现使用正在使用的对象引用来访问变量而不是使用类名完全限定该变量很方便自然。我想知道这是否有缺点?举个例子:

class MyLongClassNameIdRatherNotHaveEverywhere {
public:
    static const int Len = 6;
    //...
    void otherInterestingThings();
    void someWorkToDo();
};

int main() {
    MyLongClassNameIdRatherNotHaveEverywhere *lcn = new MyLongClassNameIdRatherNotHaveEverywhere;
    lcn->someWorkToDo();
    cout << "the length is: " << lcn->Len << endl;
    delete lcn;
    return 0;
}


注意lcn->Len ...这实际上是一个常量,实际上,如果lcn为空,则lcn->Len仍将编译并运行良好。我本可以在那里写MyLongClassNameIdRatherNotHaveEverywhere::Len,这无疑使(至少对我来说)这是一个常数更加明显。还有其他缺点吗?

最佳答案

除了怪异之外,如果运算符->重载,我还会看到一个缺点。
范围解析运算符:: btw,不能重载。

10-01 09:44