植物類(多態と継承)
3894 ワード
//#include<iostream>
//#include<string>
//using namespace std;
//
//class Botany
//{
//public:
// Botany(const string& name="")
// :_name(name)
// {
// s_Count++;
// }
// Botany(const Botany& b)
// :_name(b._name)
// {
// s_Count++;
// }
// Botany& operator=(const Botany& b)
// {
// if (this != &b)
// {
// _name = b._name;
// }
// return *this;
// }
// ~Botany()
// {
// --s_Count;
// cout << "~Botany()" << endl;
// }
// virtual void Display()
// {
// cout << "name"<<_name << endl;
// }
//protected:
// string _name;
// static int s_Count;
//};
//int Botany::s_Count = 0;
//
//class Tree:virtual public Botany
//{
//public:
// Tree(const string& s, int hight, int age)
// :Botany(s)
// , _hight(hight)
// , _age(age)
// {
//
// }
// Tree(Tree& t)
// :Botany(t._name)
// , _hight(t._hight)
// , _age(t._age)
// {
//
// }
// Tree& operator=(const Tree& t)
// {
// if (this != &t)
// {
// _name = t._name;
// _hight = t._hight;
// _age = t._age;
// }
// return *this;
// }
// ~Tree()
// {
// cout << "~Tree()" << endl;
// }
// virtual void Display()
// {
// Botany::Display();
// cout << "hight:" << _hight << endl;
// cout << "age:" << _age << endl;
// }
//protected:
// int _hight;
// int _age;
//
//};
//class Flower :virtual public Botany
//{
//public:
// Flower(const string& name, const string& color)
// :Botany(name)
// , _color(color)
// {
//
// }
// Flower(Flower& f)
// :Botany(f._name)
// , _color(f._color)
// {
//
// }
// Flower& operator=(const Flower& f)
// {
// if (this != &f)
// {
// _name = f._name;
// _color = f._color;
// }
// return *this;
// }
// ~Flower()
// {
// cout << "~Flower()" << endl;
// }
// virtual void Display()
// {
// Botany::Display();
// cout << "color" << _color << endl;
// }
//protected:
// string _color;
//};
//class MicheliaAlba:public Tree, public Flower
//{
//public:
// MicheliaAlba(const string& name, int hight, int age,const string& color,const string& kind)
// :Botany(name)
// ,Tree(name, hight, age)
// , Flower(name, color)
// , _kind(kind)
// {
//
// }
// MicheliaAlba(const MicheliaAlba& m)
// :Botany(m._name)
// , Tree(m._name, m._hight,m._age)
// , Flower(m._name, m._color)
// , _kind(m._kind)
// {
//
// }
// MicheliaAlba& operator=(const MicheliaAlba& m)
// {
// if (this != &m)
// {
// _name = m._name;
// _hight = m._hight;
// _age = m._age;
// _color = m._color;
// _kind = m._kind;
//
// }
// return *this;
// }
// ~MicheliaAlba()
// {
// cout << "~MicheliaAlba()" << endl;
// }
// virtual void Display()
// {
// Tree::Display();
// Flower::Display();
// cout << "kind" << _kind << endl;
// }
//protected:
// string _kind;
//};
//void Test1()
//{
// MicheliaAlba m(" ",11,2," ", " ");
// m.Display();
//
// Botany b(" ");
// b.Display();
//
// Tree pine(" ", 15, 27);
// pine.Display();
//
// Flower f(" ", " ");
// f.Display();
//
//
//}
//void Test2()
//{
// Botany b1(" ");
// b1.Display();
//
// MicheliaAlba m1(" ", 11, 2, " ", " ");
// m1.Display();
//
// MicheliaAlba m2(" ",13, 4, " ", " ");
// m2.Display();
//
// Botany* b = &b1;
// b->Display();
//
// b=(Botany*)&m1;
// b->Display();//
//
//}
//void Test3()
//{
// Botany b1(" ");
// b1.Display();
//
// MicheliaAlba m1(" ", 11, 2, " ", " ");
// m1.Display();
//
// b1 = m1;
// b1.Display();// :
//}
//int main()
//{
// Test3();
// system("pause");
// return 0;
//}
//