C++ 소스는 한 개의 파일에 여러 개의 클래스가 존재해도 된다.

다음은 두 개의 클래스로 구성되어 있다.
Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다.



// Filename: testSubclassing.cpp
#include <iostream>

using namespace std;

class Parent {
    private:
        char name[21];
    public:
        Parent(const char *);        // 생성자
        ~Parent() {   }                 // 소멸자
        void sayName();
};

class Child : public Parent {
    private:
        char name[21];
    public:
        Child(const char *);           // 생성자
        ~Child() {   }                    // 소멸자
        void sayName();
};

Parent :: Parent(const char *sname) {
    strcpy(name, sname);
}

void Parent :: sayName() {
    cout << "I am Parent, " << name << endl;
}

Child :: Child(const char *sname) : Parent(sname) {
    strcpy(name, sname);
}

void Child :: sayName() {
    cout << "I am a child, named as " << name << endl;
}

void main(void) {
    Child obj("Dooly");
    obj.sayName();
}




Visual C++ 6 로 컴파일할 경우 컴파일 명령은

     cl -GX testSubclassing.cpp

이다.


실행> testSubclassing
I am a child, named as Dooly




Linux/Unix 플랫폼에서 g++로 컴파일 하려면 main() 함수를 다소 수정해야 한다.

int main(void) {
    Child obj("Dooly");
    obj.sayName();
    return 0;
}

그리고 저장되는 소스 파일명도 testSubClassing.cc 로 한다.



컴파일> g++ testSubclassing.cc

실행> ./a.out
I am a child, named as Dooly


또는

컴파일> g++ -o testSubclassing testSubclassing.cc

실행> ./testSubclassing
I am a child, named as Dooly




Creative Commons License

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Posted by Scripter
,