Meine Frage mit Überlastung Member-Funktion ändern, um diese in Beziehung steht: How to publicly inherit from a base class but make some of public methods from the base class private in the derived class?, aber mein Fall ist ein wenig komplexer, als ich den Zugang für überlastet/Template-Funktionen ändern möchten:C++ Zugang für
template<typename T>
class Base
{
public:
void fun(int); //1
void fun(float); //2
void fun(T); //3
template<typename U> //4
void fun(U);
};
template<typename T1, typename T2>
class Derived : private Base<T1>
{
public:
//change access specifier here for:
//1 - make fun(int) available
//2 - fun(float) is really evil and it should not be accessible!
//3 - make fun(T1) == Base::fun(T) available
//4 - make template<typename U> void Base::fun(U) available
};
I habe das Verfahren aus früheren Antwort versucht, eine Funktion öffentlich zu machen, aber ich habe diesen Fehler:
ISO C++11 does not allow access declarations; use using declarations instead
Wie ich using
kann nur die ausgewählten Funktionen (1, 3 und 4) für die Nutzer von Derived
machen ?
+1 Ich liebe es, wenn das OP mit der besten Antwort kommt! –