Я пытаюсь получить функцию-член класса A, значение valuea которой имеет значение valueb класса B. У меня нет полного понимания наследства, поэтому простите меня, если это простая или глупая ошибка. Также было бы проще сделать функцию преобразования другом обоих классов?Значение наследования класса класса C++ Элемент данных класса «classA» равен «ClassB»
class B
{
protected:
int valueb;
public:
B() { }
B(int x) {valueb=x;}
};
class A: public B
{
int valuea;
public:
A():B() {}
A(int x):B(x) {valuea=x;}
void convert(B x)
{
valuea = x.valueb;
}
int getValue() {return valuea;}
};
int main()
{
A a(1);
B b(2);
a.convert(b);
cout << a.getValue() << endl;
}
В чем проблема? – OMGtechy
'class A' не может получить доступ к' valueb' из параметра, так как он защищен. Но 'A' уже есть' B', поэтому 'valuea = B :: valueb;' работает. Я не знаю, если это соответствует вашему намерению. См. Рабочий пример: http://ideone.com/NiQQAF –