オーバーライド

基底クラスの関数は派生クラスで上書きすることが出来ます。
これをオーバーライドと呼び、同じ名前でも派生先によって動作を変えることができます。

例1

void Person::selfIntroduction(){
    cout << name << "、"  << age << "歳です。" << endl;
}


void Student::selfIntroduction(){
    cout << name << "、"  << age << "歳 学生です。" << endl;
}


例2

Person.h

#pragma once
#include<iostream>
#include<string>
using namespace std;
class Person
{
protected:
      string name;
      int age;
public:
      Person();
      ~Person();
      void jung();
};

Student.h

#pragma once
#include "Person.h"
class Student :public Person
{
protected:
      string id;
public:
      Student();
      ~Student();
      void jung();
};

Person.cpp

#include "Person.h"
Person::Person()
{
      cout << "親のコンストラクタ";
}
Person::~Person()
{
      cout << "親のデストラクタ";
}
void Person::jung()
{
      cout << "max";
}

Student.cpp

#include "Student.h"
Student::Student()
{
      cout << "子のコンストラクタ";
}
Student::~Student()
{
      cout << "子のデストラクタ";
}
void Student::jung()
{
      cout << "オーバーライド";
}



testcounter
合計 -
今日 -
昨日 -