#include <iostream>
#include <cstring>
using namespace std;
class Book {
char *title; // 제목 문자열
int price; // 가격
public:
Book(char* title, int price);
Book(Book& b); // (3) 정답. 깊은 복사 복사 생성자 작성
~Book();
void set(char* title, int price);
void show() { cout << title << ' ' << price << "원" << endl; }
};
Book::Book(char * title, int price) {
int len = strlen(title);
this->title = new char[len + 1];
strcpy_s(this->title,100, title);
this->price = price;
}
Book::Book(Book & b) {
int len = strlen(b.title);
title = new char[len + 1];
strcpy_s(title,100, b.title);
price = b.price;
}
Book::~Book() {
if (title)
delete[]title;
}
void Book::set(char * title, int price) {
if (strlen(title) > strlen(this->title)) {
delete[]this->title;
this->title = new char[strlen(title + 1)];
strcpy_s(this->title,100, title);
}
this->price = price;
}
int main() {
Book cpp("명품C++", 10000);
Book java = cpp;
java.set("명품자바", 12000);
cpp.show();
java.show();
}
strcpy 가 비쥬얼 스튜디오 2017에서 안되서 strcpy_s로 바꾸었는데 실행 오류가 뜨네요...
해결법좀 부탁드립니다.