статическая константа, ссылающаяся на родительскую переменную - PullRequest
0 голосов
/ 22 февраля 2011

Допустим, вы хотите использовать ту же память, что и родительский класс, но хотели бы более подходящее имя для его новой функции.Это достигается следующим образом (например, SOCKADDR из winsock):

class Parent{
    int a;
};

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

Очень похоже на статическое const вместо определения - есть ли специфическая для C ++ альтернатива создания этой ссылки

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

Одна возможность будет:

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

     void print()
     {
        cout << myA(); 
     }
     void DoSomethingElse()
     {
        myA() = 10;
     }
};
0 голосов
/ 22 февраля 2011

Определите ссылку, подобную этой, и инициализируйте ее в списке инициализаторов!

class Child: public Parent
{
     int& myA;
     Child() : myA(Parent::a) //<-- note this!
     {
     }
     void print()
     {
        cout<<myA; //myA is just an alias of a!
     }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...