让我们说我们有这样的功能
template <class T, class T2>
T getMin(T a, T2 b) {
if(a < b)
return a;
return b;
}
Run Code Online (Sandbox Code Playgroud)
如果我们这样调用函数
int a, b;
long c;
a = getMin(b, c);
Run Code Online (Sandbox Code Playgroud)
如果c是<a,那么c的值将被类型转换为int.
是否可以使返回类型具有灵活性,以便返回int,long或任何其他类型的"<"而不是类型的类型?
编辑:函数中涉及的类型可以是从简单类型到复杂类的任何类型,其中某些时候无法进行类型转换.
鉴于我们在基类中重载了方法,并且派生类继承为private/protected.
代码段:
class base {
public:
void method() {}
void method(int x) {}
protected:
void method2() {}
};
class derived : private base {
public:
base::method; // Here, i want to restore only the none parameterized method
base::method2; // method2 is now public??
};
Run Code Online (Sandbox Code Playgroud)