'c++상속'에 해당되는 글 1건

  1. 2012.06.21 상속을 이용한 프로그램

정사각형을 의미하는 Square 클래스와 직사각형을 의미하는 Rectangle 클래스를 정의한다. 그런데 정사각형은 직사각형의 일종이므로, 아래와 같은 클래스의 상속관계가 이루어진다.


정사각형 is a 직사각형






책을 의미하는 Book 클래스와 '전자 책'을 의미하는 EBook 클래스를 정의한다. 그런데 '전자 책'도 '책'의 일종이므로, 아래와 같은 형태로 클래스의 상속관계를 가진다.


전자 책 is a


#include <iostream>

#include <cstring>

using namespace std;


class Book

{

private:

char* title;

char* isbn;

int price;

public:

Book(char* title, char* isbn, int price)

:price(price)

{

this->title = new char[strlen(title)+1];

this->isbn = new char[strlen(isbn)+1];


strcpy(this->title, title);

strcpy(this->isbn, isbn);

}


void ShowBookInfo(void) const

{

cout<<"제목: "<<title<<endl;

cout<<"ISBN: "<<isbn<<endl;

cout<<"가격: "<<price<<endl;

}


~Book()

{

delete []title;

delete []isbn;

}

};


class EBook :public Book

{

private:

char* DRMKey;

public:

EBook(char* title, char* isbn, int price, char* key)

:Book(title, isbn, price)

{

DRMKey = new char[strlen(key)+1];

strcpy(DRMKey, key);

}


void ShowEBookInfo(void) const

{

ShowBookInfo();

cout<<"인증키: "<<DRMKey<<endl;

}


~EBook()

{

delete []DRMKey;

}

};


int main(void)

{

Book book("Houdini Book", "123", 15000);

book.ShowBookInfo();

cout<<endl;


EBook ebook("Houdini E-Book", "456", 12000, "asdf");

ebook.ShowEBookInfo();


return 0;

}



'Programming > C++' 카테고리의 다른 글

상속과 다형성  (0) 2012.06.23
Control 클래스 & Entity 클래스  (0) 2012.06.22
상속을 위한 조건  (0) 2012.06.19
protected 선언과 세 가지 형태의 상속(public, protected, private)  (0) 2012.06.13
상속(inheritance)  (0) 2012.06.06
Posted by scii
: