반응형
class Base
{
public:
int m_public;
protected:
int m_protected;
private:
int m_private;
};
int main()
{
Base base;
base.m_public = 123;
base.m_protected = 123;
}
protected는 class 밖에서 접근을 할려하니 오류가 발생합니다. base.m_protected는 불가능한데요. 당연히 private는 안되는 것을 알고 계실 것이라 생각합니다.
protected는 상속된 곳에서 접근이 되느냐 안되느냐가 public이랑 차이입니다.
#include <iostream>
using namespace std;
class Base
{
public:
int m_public;
protected:
int m_protected;
private:
int m_private;
};
class Derived : protected Base
{
public:
Derived()
{
}
};
int main()
{
Derived derived;
derived.m_public = 1024;
}
이렇게 될경우 Derived가 protected로 받은 것으로 인식되기 때문에 밑에 int main이 인식이 되지 않습니다.
Base::m_public; // this->m_public; m_public;
이 세개는 같은 것입니다.
반응형
'IT 프로그래밍 > C++' 카테고리의 다른 글
[c++] virtual 함수 (0) | 2024.05.28 |
---|---|
[c++] 상속받은 함수를 오버라이딩 하기 (0) | 2024.05.27 |
[따배시 11.1 c++] 상속의 기본1 (0) | 2024.05.26 |
[c++] 2702번 초6 수학 (0) | 2024.05.25 |
[c++] 2903번 중앙 이동 알고리즘 (0) | 2024.05.25 |