kia*_*ian 1 c++ java polymorphism factory
我正在将一些Java代码转换为C++,我希望保持类结构类似.但是,我遇到了以下问题,我不知道如何解决; 我在Java中这样做:
public class Mother {
protected Father make;
public Mother(){
make = maker();
make.print(); };
public Father maker(){
return new Father();};}
public class Daughter extends Mother {
public Daughter(){
super();}
@Override
public Father maker(){
return new Son();};}
public class Father {
public void print(){
System.out.println("I am the Father!\n");}}
public class Son extends Father {
@Override
public void print(){
System.out.println("I am the son!\n");};}
public static void main(String[] args) {
Daughter dot = new Daughter();
}
Run Code Online (Sandbox Code Playgroud)
会产生:我是儿子! 而:
class father{
public:
virtual void print(){
std::cout << "I am the father!\n";
}; };
class son: public father{
public:
virtual void print(){
std::cout << "I am the son!\n";
};};
class mother{
protected:
father *make;
public:
mother(){
make = maker();
make->print();
};
virtual father *maker(){
return new father();
};};
class daughter: public mother{
public:
daughter(): mother() {
};
virtual father *maker(){
return new son();
};};
int main(int argc, const char * argv[]) {
daughter *d = new daughter();
Run Code Online (Sandbox Code Playgroud)
会产生我是父亲!.如何使C++代码生成与Java代码相同的结果?谢谢.