class AcctABC

{

private:

string fullname;

long accNum;

double balance;

protected:

struct Formatting

{

ios_base::fmtflags flag;

streamsize pr;

};

const string& FullName() const { return fullname; }

long AcctNum() const { return accNum; }

Formatting SetFormat() const;

void Restore(Formatting& f) const;

public:

AcctABC(const string& s="Nullbody", long an=-1, double bal=0.0);

void Deposit(double amt);

virtual void Withdraw(double amt) = 0;

double Balance() const { return balance; };

virtual void ViewAcct() const = 0;

virtual ~AcctABC()

{

//empty

}

};

지금 상속부분 공부중인데...모르는게 있어서...

이런 추상화 클래스가 있는데 메서드들을 protected에 선언 정의를 했는데 이게 무슨 효과인지 잘 모르겠습니다


책에서는 protected 메서드들은 파생 클래스 객체를 위한 public 인터페이스를 통하지 않고, 파생클래스 메서드가 직접 호출 할 수있는 메서드 이다..


라고 했는데 이 문장이 잘 이해가 가질 않습니다요.public에 선언 정의해도 똑같이 파생클래스에서 쓸수 있던데..

멤버 변수를 proteced에 선언하면 파생클래스에서 기초클래스의 메서드를 사용하지않고 파생클래스에서 제약없이 직접 접근 할 수있어서

이건 이해가 쉬운데, 멤버함수는 이해가 잘 가질 않습니다요 형님들..


쉽게 이해좀 시켜주실수 있나요?