假设您希望使用与父类相同的内存,但希望为其新功能使用更合适的名称。这是这样实现的(例如来自winsock的 SOCKADDR ):
class Parent{
int a;
};
#define myA a;
class Child: public Parent{
void print(){
cout<<myA;
}
};
很像静态const而不是定义 - 是否有特定于C ++的替代方法来创建此引用?
答案 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!
}
};