问题比问题看上去要复杂得多。我有一个抽象类。而且我希望它具有一个抽象函数,但是使用类的返回类型和参数类型来实现它。
所以我想要类似的东西:
vector<int> smallestLexo(vector<int> s, int k) {
deque<int> dq;
for(int i = 0; i < s.size(); i++) {
while(!dq.empty() && s[i] < dq.back() && (dq.size() + (s.size() - i - 1)) >= k) {
dq.pop_back();
}
dq.push_back(s[i]);
}
return vector<int> (dq.begin(), dq.end());
}
所以我可以再上一个课
public abstract class Class
{
public abstract T DoSomething(T variable) where T : Class;
}
这可能吗?
答案 0 :(得分:4)
是的,您需要将通用参数限制为基本类型。
public abstract class MyClass<T> where T : MyClass<T>
{
public abstract T DoSomething(T variable);
}
和
public class MyDerivedClass : MyClass<MyDerivedClass>
{
public override MyDerivedClass DoSomething(MyDerivedClass variable)
{ ... }
}