C++类中的继承实例详解

实例效果:

实现代码:

#include<iostream>
#include<string>
using namespace std;



class Person
{
public:
 Person(const char* name = "abc")
  :_name(name)
 {
  cout << "Person()" << endl;
 }

 Person(const Person& pp)
  :_name(pp._name)
 {
  cout << "Person(const Person&)" << endl;
 }


 Person& operator=(const Person& pp)
 {
  cout << "Person& operator=(const Person&)" << endl;
  if (this != &pp)
  {
   _name = pp._name;
  }
  return *this;
 }

 ~Person()
 {
  cout << "~Person()" << endl;
 }

protected:
 string _name;
};



class Student :public Person
{
public:
 Student(const char* name, int num)
  :Person(name)
  , _num(num)
 {
  cout << "Student()" << endl;
 }

 Student(const Student& A)
  :Person(A)
  , _num(A._num)
 {
  cout << "Student(const Student& A)" << endl;
 }

 Student& operator=(const Student& A)
 {
  cout << "Student& operator=(const Student& A)" << endl;
  if (this != &A)
  {
   Person::operator=(A);
   _num = A._num;
  }
  return *this;
 }

 ~Student()
 {
  cout << "~Student()" << endl;
 }



private:
 int _num;
};


void test()
{

 Student a1("peter", 20);
 Student a2(a1);
 a2 = a1;
}



int main()
{
 test();
 return 0;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

02-08 18:01