Есть ли любой способ непосредственно выставить некоторые методы частного родительского класса. В следующем примере, если у меня есть объект Ребенка типа, я хочу смочь непосредственно назвать метод () его родителя, но не b (); Текущее решение порождает много шаблонного кода особенно, если существует много аргументов.
class Parent {
public:
void a(int p1, double p2, int p3, std::vector <int> &p4);
void b();
};
class Child : private Parent {
public:
void a(int p1, double p2, int p3, std::vector <int> &p4) {
Parent::a(p1, p2, p3, p4);
}
};
Вы можете использовать объявление using.
class Child : private Parent {
public:
using Parent::a;
};
Это может помочь: http://www.parashift.com/c++-faq-lite/private-inheritance.html#faq-24.6
class Child : protected Parent
{
public:
using Parent::a;
}
Изменить: добавлен паблик
.