静态常量引用父变量

时间:2011-02-22 18:28:40

标签: c++ oop

假设您希望使用与父类相同的内存,但希望为其新功能使用更合适的名称。这是这样实现的(例如来自winsock的 SOCKADDR ):

class Parent{
    int a;
};

#define myA a;
class Child: public Parent{
    void print(){
        cout<<myA;
    }
};

很像静态const而不是定义 - 是否有特定于C ++的替代方法来创建此引用?

2 个答案:

答案 0 :(得分:2)

一种可能性是:

class Child: public Parent
{
     int& myA() { return a; }

     void print()
     {
        cout << myA(); 
     }
     void DoSomethingElse()
     {
        myA() = 10;
     }
};

答案 1 :(得分:0)

定义这样的引用,并在initializer-list中初始化它!

class Child: public Parent
{
     int& myA;
     Child() : myA(Parent::a) //<-- note this!
     {
     }
     void print()
     {
        cout<<myA; //myA is just an alias of a!
     }
};