2011-02-22 90 views
0

假设你想使用与父类相同的内存,但希望为其新函数使用更合适的名称。这是这样实现的(例如SOCKADDR从Winsock的):引用父变量的静态常量

class Parent{ 
    int a; 
}; 

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

就像静态常量代替定义 - 是有C++特定创建该参考文献的方法吗?

+0

我从来没有见过这样的事,但我不去找在Win32代码的良好做法。我看看win32代码,但不去做:p – 2011-02-22 18:35:46

+2

请不要将C++问题标记为C.谢谢。 – 2011-02-22 18:47:00

+0

一个非常存在的问题的可怕解决方案。 – 2011-02-22 18:52:12

回答

2

一种可能性是:

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

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

定义这样的引用,并在初始化程序列表中初始化它!

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