Я пробовал несколько концепций сокрытия функций в C ++. Итак, здесь, в производном классе, я использовал оператор разрешения области видимости using base::fun
, чтобы предоставить область видимости базового класса в производном классе. Моя цель - напечатать cout<<" base "<< x;
, но вывод выводит только производный класс cout. Есть причины, почему и как решить? т.е. он должен печатать значение как базового, так и производного класса. Я новичок в C ++, прошу прощения за ошибки. Код показан ниже:
#include <stdio.h>
#include <iostream>
using namespace std;
class base
{
public:
int fun(int x)
{
cout<<" base "<< x;
return x;
}
};
class derived:public base
{
public:
using base::fun;
void fun(int a)
{
cout<<" derived "<< a;
}
};
int main()
{
derived d;
d.fun(10);
return 0;
}