#include <iostream>
#include <cstring>
using namespace std;
class Book
{
private:
char *title; //책의 제목
char *isbn; //국제표준도서번호
int price; //책의 정가
public:
Book(const char* booktitle, const char *bookisbn, int bookprice) :price(bookprice)
{
title = new char[strlen(booktitle) + 1];
strcpy_s(title,sizeof(title) ,booktitle);
isbn = new char[strlen(bookisbn) + 1];
strcpy_s(isbn, sizeof(isbn),bookisbn);
}
void ShowBookInfo()
{
cout << "제목: " << title << endl;
cout << "ISBN: " << isbn << endl;
cout << "가격: " << price << endl;
}
~Book()
{
delete[]title;
delete[]isbn;
}
};
class Ebook :public Book
{
private:
char *DRMKey; //보안관련 키
public:
Ebook(const char *booktitle, const char *bookisbn, int bookprice, const char *key) :Book(booktitle, bookisbn, bookprice)
{
DRMKey = new char[strlen(key) + 1];
strcpy_s(DRMKey,sizeof(DRMKey), key);
}
void ShowEBookInfo()
{
ShowBookInfo();
cout << "인증키: " << DRMKey << endl;
}
~Ebook()
{
delete[]DRMKey;
}
};
int main(void)
{
Book book("좋은 C++", "555-12345-890-0", 20000);
book.ShowBookInfo();
cout << endl;
Ebook ebook("좋은 C++ ebook", "555-12345-890-1", 10000, "fdx9w0i8kiw");
ebook.ShowEBookInfo();
return 0;
}
이대로 실행하면 아래와같은 문제가 생깁니다...
원래 책에선 인자로 받을때 const도 없어서 추가시켰고 strcpy도 strcpy_s로 바꿨는데도 문제가 생기네요...
멤버변수를 char title[100], char isbn[100] 식으로 수정하고(밑에도 맞게 바꾸고) 실행하면 되는데
위에 처럼하면 안돼요! ㅜㅜㅜㅜ
도와주세요