множественное наследование с одним и тем же атрибутом в суперклассе - PullRequest
2 голосов
/ 27 декабря 2011

В множественном наследовании c ++ с тем же атрибутом в классе suber, как этот код

class A{
protected :
    int var;
}

class B{
protected :
    int var;    
}

class C: public A,B{

    C(){
        A::var=3;
        B::var=5;
    }
}

я должен написать A :: var или B :: var, чтобы определить суперкласс, есть ли способ переопределить атрибутв классе С, как

#define AA = A::var

1 Ответ

2 голосов
/ 27 декабря 2011

Конечно, вы можете #define все. Но это не очень хорошая высота. Также AA будет определяться везде в вашем коде, а не только в области действия class C.

Вы можете добавить:

using A::var;

Так что var будет A::var по умолчанию.

Кроме того, вы можете добавить функцию-член, которая будет возвращать вам ссылку на вашу переменную-член, если вы не хотите добавлять A:: везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...