首先,我知道答案就在某个地方,但我整个上午都在寻找,但没有找到。
我的问题是关于 Java 的样子
abstract class AbstractWorker {
public abstract int doIt();
}
class Thinker extends AbstractWorker {
public int doIt() { return 42; }
}
class Milkmaid extends AbstractWorker {
public int doIt() { return 1 + 2; }
}
class Worker {
public int getWorkDone(AbstractWorker worker) {
return worker.doIt();
}
}
我认为这在 C++ 中也应该是可能的。但是我该如何实现呢?我的方法看起来像
struct AbstractWorker {
virtual int doIt() = 0;
};
struct Thinker : public AbstractWorker {
int doIt() { return 42; }
};
struct Milkmaid : public AbstractWorker {
int doIt() { return 1 + 2; }
};
struct Worker {
int getWorkDone(AbstractWorker &worker) {
return worker.doIt();
}
};
这有什么问题?或者你会如何解决这个问题?