구현 방식
class derived_class_name: public base_class_name
{ /*...*/ };
위에서 public 은 파생 클래스의 외부에서 사용할 수 있는 멤버의 엑세스 권한 필터로 생각하면 쉽다.
예를 들어 위의 선언에서 public 으로 되어 있으면 베이스 클래스의 멤버 중 public 멤버들은 파생 클래스의 외부에서도 사용할 수 있지만, protected 또는 private 로 되어 있으면 외부에서 사용 불가능하다. 하지만, 파생 클래스 내의 함수들은 이와 상관 없이 원래의 엑세스 권한 그대로 베이스 클래스 내의 public, protected 멤버는 액세스 가능하다.
예제
// derived classes
#include <iostream>
using namespace std;
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
class CRectangle: protected CPolygon {
public:
int area ()
{ return (width * height); }
void set_values2 (int a, int b)
{ width=a; height=b; }
};
class CTriangle: public CPolygon {
public:
int area ()
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
// rect.set_values (4,5); // produce compile time error
rect.set_values2 (4,5);
trgl.set_values (4,5);
cout << rect.area() << endl;
cout << trgl.area() << endl;
cin.get();
return 0;
}
'Coding > VB C C++' 카테고리의 다른 글
Global conditional define (#const) statements in vb.net (0) | 2016.02.03 |
---|---|
예술적인 C 코드 (0) | 2008.02.19 |
[C&C++] friend (0) | 2007.12.17 |
[C&C++] static member (0) | 2007.12.17 |
[C&C++] constructor, destructor (0) | 2007.12.17 |