在 C++ 中,是否可以在另一个类的函数中实现一个类的函数(除了依赖关系之外不相关)类的函数?我正在寻找的行为可以使用在匿名内部类中实现的抽象方法和/或接口在 Java 中实现,如下所示:
Interface IFoo{
public void doFoo();
}
Class Bar {
private IFoo impl;
public Bar(IFoo implArg){
impl = implArg;
}
}
static void main(String[] args) {
Bar myBar = new Bar(new IFoo(){
@Override
public void doFoo(){
System.out.println("hello foo impl!");
}
});
}
在 C++ 中可以实现同样的效果吗?如果可以,如何实现?我想到的用例是动态定义规则,如下所示:
抽象规则.h
#ifndef _ABSTRACT_RULE_H_
#define _ABSTRACT_RULE_H_
#include <stdio.h>
class AbstractRule{
private:
public:
AbstractRule();
~AbstractRule();
void enforceAbstractRule();
};
#endif
抽象规则.cpp
#include "AbstractRule.h"
AbstractRule::AbstractRule(){
}
AbstractRule::~AbstractRule(){
}
void AbstractRule::enforceAbstractRule(){
printf("placeholder impl of enforceRule-- should not see this in production");
}
主文件
#include "AbstractRule.h"
int main(int argc, char** argv){
AbstractRule myRule;
//do something here so that myRule.enforceAbstractRule() call prints "enforced
//myRule!"
myRule.enforceAbstractRule();
}
问题是,我需要在“在这里做点什么......”评论中做什么才能达到预期的效果?