帮忙解释一下代码(在基类中声明虚类,及在基类的静态函数中创建派生类对象)
西笑生 人工智能领域优质创作者 2008-10-08 12:32:28 代码我已经写了一部分
如何在基类的静态函数中创建派生类对象,请指教
#include "iostream"
using namespace std;
class Base
{
//public:Base();
public:
static Base* function();
virtual class Derived1* print1()=0;
virtual class Derived2* print2()=0;
virtual class Derived3* print3()=0;
};
class Derived1:public Base
{
public:Derived1(){cout<<"构造Derived1"<<endl;}
public:
virtual Derived1* print1();
virtual Derived2* print2();
virtual Derived3* print3();
};
class Derived2:public Base
{
public:Derived2(){cout<<"构造Derived2"<<endl;}
public:
virtual Derived1* print1();
virtual Derived2* print2();
virtual Derived3* print3();
};
class Derived3:public Base
{
public:Derived3(){cout<<"构造Derived3"<<endl;}
public:
virtual Derived1* print1();
virtual Derived2* print2();
virtual Derived3* print3();
};
Derived1* Derived1::print1()
{
cout<<"Derived1"<<endl;
return 0;
}
Derived2* Derived2::print2()
{
cout<<"Derived2"<<endl;
return 0;
}
Derived3* Derived3::print3()
{
cout<<"Derived3"<<endl;
return this;
}
Base* Base::function()
{
cout<<"function"<<endl;
return 0;
}
int main()
{
return 0;
}