IT 프로그래밍/C++

[c++] 따배시 상속과 접근 지정자

기술1 2024. 5. 27. 09:49
반응형
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;

이 세개는 같은 것입니다.

 

 

반응형