C语言

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

时间:2024-07-05 12:37:40 C语言 我要投稿
  • 相关推荐

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

  类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。下面是小编分享的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;

  }


《C++类中的继承实例详解.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【C++类中的继承实例详解】相关文章:

c++快速排序详解10-18

Java实现多继承的实例07-18

C++类的转换10-17

C与C++之间相互调用的实例07-07

Java实现在不同线程中运行的代码实例详解06-11

Java内部类详解及实例分析06-25

C语言循环队列的表示与实例详解08-21

C语言合并排序及实例代码详解11-02

java继承抽象类07-28

Java中的Spring入门实例09-15

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

  类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。下面是小编分享的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;

  }