๊ธ ์์ฑ์: ๋ฅํด๋ฒ .
1. ์ค๋ช
final ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋์ค๋ ๋ฉค๋ฒ ํจ์์ ์์์ ๋ง์ ์ ์๋ค.
class Parent final // ํด๋์ค์ final ํค์๋๋ฅผ ์ฌ์ฉ ํ ๊ฒฝ์ฐ
2. ์์
2.1) final๋ก ์ ์ธ ๋ ํด๋์ค๋ฅผ ์์ํ์ ์
#include <iostream>
using namespace std;
class Parent final
{
public:
Parent() { cout << "Parent Constructor Call" << endl; }
virtual void override_func() { cout << "Parent override_func Call" << endl; }
};
class Child : public Parent // ์ปดํ์ผ ์๋ฌ!! final๋ก ์ ์ธ๋ ํด๋์ค๋ ์์ ํ ์ ์๋ค
{
public:
Child() { cout << "Child Constructor Call" << endl; }
void ov
2.2) final๋ก ์ ์ธ ๋ ๋ฉค๋ฒ ํจ์๋ฅผ ์์ ํ์ ์
#include <iostream>
using namespace std;
class Parent
{
public:
Parent() { cout << "Parent Constructor Call" << endl; }
virtual void override_func() final { cout << "Parent override_func Call" << endl; }
};
class Child : public Parent
{
public:
Child() { cout << "Child Constructor Call" << endl; }
void override_func() override { cout << "Child override_func Call" << endl; } // ์ปดํ์ผ ์๋ฌ!! final๋ก ์ ์ธ๋ ๋ฉค๋ฒ ํจ์๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ ์ ์๋ค
};