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