# include <iostream> // cin , cout
# include <string> // string
using namespace std;
class Fans
{
public:
virtual void say_jiayou()=0;
virtual char* country()=0;
};
class Spanish : public Fans
{
public:
void say_jiayou()
{
cout<<"animo"<<endl;
}
char* country()
{
return "Spanish";
}
};
class French : public Fans
{
public:
void say_jiayou()
{
cout<<"bon courage"<<endl;
}
char* country()
{
return "French";
}
};
class Portuguese : public Fans
{
public:
void say_jiayou()
{
cout<<"ole"<<endl;
}
char* country()
{
return "Portuguese";
}
};
void action ( Fans& somebody )
{
somebody.say_jiayou();
}
static ostream& operator<<(ostream& os,Fans* fans)
{
os<<fans->country()<<endl;
return os;
# include <string> // string
using namespace std;
class Fans
{
public:
virtual void say_jiayou()=0;
virtual char* country()=0;
};
class Spanish : public Fans
{
public:
void say_jiayou()
{
cout<<"animo"<<endl;
}
char* country()
{
return "Spanish";
}
};
class French : public Fans
{
public:
void say_jiayou()
{
cout<<"bon courage"<<endl;
}
char* country()
{
return "French";
}
};
class Portuguese : public Fans
{
public:
void say_jiayou()
{
cout<<"ole"<<endl;
}
char* country()
{
return "Portuguese";
}
};
void action ( Fans& somebody )
{
somebody.say_jiayou();
}
static ostream& operator<<(ostream& os,Fans* fans)
{
os<<fans->country()<<endl;
return os;
}
int main ()
{
Spanish s1;
French s2;
Portuguese s3;
action (s1 );
action (s2 );
action (s3 );
Fans * fan_list [] = {&s1 , &s2 , &s3 };
for (int i=0; i < sizeof(fan_list)/sizeof(Fans*); i++)
cout <<i<<"\t"<<fan_list[i];
//string file_name ;
//cin >> file_name ;
//Paper paper ;
//paper.load("paper.txt");
//s1.say_or_sing (& paper );
return 0;
}