经过很长一段时间我几乎完全使用Java后,我又回到了使用C++的时候,所以当我尝试用Java做的事情但却不能用C++做的事情时,我会遇到麻烦.
在这种情况下,在Java中,我可以这样做:
class MyClass
{
public void myMethod();
}
// -------
MyClass myObject = new MyClass(){
myMethod()
{
// Do stuff
}
};
Run Code Online (Sandbox Code Playgroud)
本质上,我在声明MyClass对象时实现myMethod()的逻辑(注意我的语法可能已关闭).
我试图找出是否有相当于C++的东西
我的具体用例是一组服务器/客户端体系结构的测试,其中Test对象扩展基本的Server/Client抽象类并实现控制其行为的虚拟方法.我需要为每个特定测试修改此行为,并且在声明Test对象时能够"内联"这些实现,而不是必须为每个特定测试实现Test对象的多个变体,这样做会很方便.
谢谢!
编辑:我已经实现了Smeeheey的答案如下,并且像一个魅力
int main(...)
{
class TestServer : public BaseServer
{
public:
TestServer(...) : BaseServer(...){...} //Constructor
void virtualFunction(...){...} // Extended function
};
TestServer testInstance(...);
// Execute tests using testInstance object
Run Code Online (Sandbox Code Playgroud)
}