#include <iostream>
#include <vector>
#include <string>usingnamespace std;
class A
{
public:
void pout() { doout(); }
virtualvoid doout()=0;
};
class BA: public A
{
public:
void doout() { cout<<m_i<<""; }
int m_i;
};
class CA: public A
{
public:
void doout() { cout<<m_str<<""; }
string m_str;
};
class DA : public A
{
public:
void doout() {
for (vector<A *>::iterator it=m_vec.begin();it!=m_vec.end();++it)
(*it)->doout();
}
vector <A *> m_vec;
};
int main()
{
BA *pBa =new BA;
pBa->m_i =100;
CA *pCa =new CA;
pCa->m_str ="myprogram";
DA da;
da.m_vec.push_back(pBa);
da.m_vec.push_back(pCa);
da.doout();
return0;
}
#include <iostream>
#include <vector>
#include <string>usingnamespace std;
class A
{
public:
void pout() { doout(); }
virtualvoid doout()=0;
};
class BA: public A
{
public:
void doout() { cout<<m_i<<""; }
int m_i;
};
class CA: public A
{
public:
void doout() { cout<<m_str<<""; }
string m_str;
};
class DA : public A
{
public:
void doout() {
for (vector<A *>::iterator it=m_vec.begin();it!=m_vec.end();++it)
(*it)->doout();
}
vector <A *> m_vec;
};
int main()
{
BA *pBa =new BA;
pBa->m_i =100;
CA *pCa =new CA;
pCa->m_str ="myprogram";
DA da;
da.m_vec.push_back(pBa);
da.m_vec.push_back(pCa);
da.doout();
return0;
}