[C++11] keyword: override
๊ธ ์์ฑ์: ๋ฅํด๋ฒ .
๋ฐ์ํ
1. ์ค๋ช
์ค์๋ก ๊ฐ๋ฐ์๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ(overriding)ํด์ผ ํ๋ ํจ์์๋ ๋ถ๊ตฌํ๊ณ ์ค๋ฒ๋ผ์ด๋ฉ์ ํ์ง ์์์ ๊ฒฝ์ฐ ์ปดํ์ผ ํ์์ ์๋ฌ๋ฅผ ๋ฐ์์์ผ ๋ฏธ์ฐ์ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
void override_func() override { cout << "Child override_func Call" << endl; }
2. ์์
2.1) override๋ฅผ ์ฌ์ฉํ์ ์
#include <iostream>
using namespace std;
class Parent
{
public:
Parent() { cout << "Parent Constructor Call" << endl; }
virtual void override_func() { 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; }
};
int main() {
Parent* p;
p = new Child;
p->override_func();
return 0;
}
Parent Constructor Call
Child Constructor Call
Child override_func Call
2.2) override๋ฅผ ์ฌ์ฉํ๋๋ฐ override ๋ ํจ์๊ฐ ์์ ์
#include <iostream>
using namespace std;
class Parent
{
public:
Parent() { cout << "Parent Constructor Call" << endl; }
virtual void override_func() { cout << "Parent override_func Call" << endl; }
};
class Child : public Parent
{
public:
Child() { cout << "Child Constructor Call" << endl; }
void override_func() const override { cout << "Child override_func Call" << endl; } // ์ปดํ์ผ ์๋ฌ
};
int main() {
Parent* p;
p = new Child;
p->override_func();
return 0;
}
Parent์ void override_func() ์ Child์ void override_func() const๋ ์๋ก ๋ค๋ฅธ ํ์์ด๋ผ ์ค๋ฒ๋ผ์ด๋(override) ๋๋๊ฒ ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ override ํค์๋๋ฅผ ์ง์ ํด์คฌ์ผ๋ฏ๋ก ์๋ฌ!
๋ฐ์ํ
'Language > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] keyword: const (0) | 2020.07.22 |
---|---|
[C++11] keyword: final (0) | 2020.07.22 |
[C++] keyword: virtual (0) | 2020.07.22 |
[C++] keyword: public, protected, private (0) | 2020.07.22 |
[C/C++] Socket Send/Receive Buffer์ ๋ํ ๊ณ ์ฐฐ (3) | 2019.07.08 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[C++] keyword: const
[C++] keyword: const
2020.07.22 -
[C++11] keyword: final
[C++11] keyword: final
2020.07.22 -
[C++] keyword: virtual
[C++] keyword: virtual
2020.07.22 -
[C++] keyword: public, protected, private
[C++] keyword: public, protected, private
2020.07.22