Мне нужно наследовать защищенные элементы базового класса и сохранить в качестве защищенного в производном тоже. Для примера: базовый класс имеет функции set() и get(), и они также должны быть защищены в производном. Проблема в том, как они защищены в производных так, как получить доступ.Доступ к защищенному наследованию
На самом деле я пытаюсь сделать это:
#include<iostream>
#include<string>
using namespace std;
class Animal
{
protected:
string name;
void setName(string a){ name = a; }
void getName(){ cout << name << endl; }
};
class Cat :public Animal
{
public:
Cat(string dc){
setName(dc);
}
void printName(){ getName(); }
};
class Dog :public Animal
{
public:
Dog(string dc2){
setName(dc2);
}
void printName(){ getName(); }
};
int main()
{
Cat c("Mano");
c.printName();
Dog d("Tommy");
d.printName();
system("pause");
return 0;
}
Вы хотите, чтобы они были защищены в производном классе, но проблема в том, что они защищены в производном классе? Что вы на самом деле пытаетесь сделать? Может быть, небольшой образец кода поможет. – juanchopanza
Если вы создаете член 'protected' в базовом классе, почему вы хотите, чтобы он был« public »в производном классе? Если вы хотите, сделайте член 'public' в базовом классе! –
Я попытался установить значение с помощью конструктора, а затем попытался с публичной функцией, но эта вещь не помогает. Много ошибок. – affanBajwa