继承的优点 提高代码的复用性
#include <iostream>
using namespace std;
class CPerson //基类(父类)
{
public:
void Eat()
{
cout << "吃" << endl;
}
};
class CSupream :public CPerson //派生类(子类)
{
public:
void Fly()
{
cout << "飞" << endl;;
}
};
int main()
{
CPerson ps1;
CSupream ps2;
ps2.Eat();
ps2.Fly();
return 0;
}
类之间是继承关系,而类中创建的对象是没有关系的。不能子类的对象对父类的成员进行修改,父类中的成员其实并不会改变。
#include <iostream>
using namespace std;
class CPerson // 基类(父类)
{
public:
int m_nMoney;
public:
CPerson()
{
m_nMoney = 100;
}
};
class CSuperMan : public CPerson // 派生类(子类)
{
public:
int m_nMoney;
public:
CSuperMan()
{
m_nMoney = 200;
}
};
int main()
{
CPerson ps1;
CSuperMan ps2;
ps2.CPerson::m_nMoney = 1;
cout << ps1.m_nMoney << endl; //100
system("pause");
return 0;
}
#include <iostream>
using namespace std;
class CPerson // 基类(父类)
{
public:
int m_nMoney;
public:
CPerson()
{
m_nMoney = 100;
}
public:
void Show()
{
cout << "CPerson::Money " << m_nMoney << endl;
}
};
// 继承 把父类中的非static 成员继承过来
// 继承的优点? 提高复用性
class CSuperMan : public CPerson // 派生类(子类)
{
public:
int m_nMoney;
public:
CSuperMan()
{
m_nMoney = 200;
}
public:
void Fly()
{
cout << "CSuperMan::Fly" << endl;
}
};
int main()
{
CSuperMan ss;
ss.Show();
ss.Fly();
cout << sizeof(CSuperMan) << endl; //8
cout << ss.CSuperMan::m_nMoney << endl; // 继承里 同名的成员 需要用 类名:: 区分
cout << ss.CPerson::m_nMoney << endl;
system("pause");
return 0;
}