0

在声明和使用静态 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为 null,lcn->Len仍然可以正常编译和运行。我本来可以写MyLongClassNameIdRatherNotHaveEverywhere::Len在那里,这无疑使(至少对我而言)这是一个常数更明显。还有其他缺点吗?

4

1 回答 1

1

除了奇怪之外,我可以看到一个缺点,如果运算符 -> 被重载...范围解析运算符 :: btw,不能被重载。

于 2013-07-31T13:39:36.687 回答