나는 C++로 수업을 배웠고 오래된 러시아 책에서 책 클래스에 대한 특정 코드를 얻었습니다. 수정하고 실행했습니다. authour 생성자 내부에서이 코드 (무엇을해야에서는 StrDup합니까?)클래스를 사용하는 방법
Author = strdup(autho);
를 사용하는 간단한 직선 설명과 함께
Book s("edgar", "science", "chemistry for dummies", "502","12.11.13","1.12.96");
사람이 코드 줄에 잘못?
using namespace std;
class Book{
char * Author;
char * Type;
char * Title;
int * Pages;
unsigned int * Yearpublished;
unsigned int * Publishing;
Book(char * autho, char * type, char * title, int * pages, unsigned int * yearpublished, unsigned int * publishing){
Author = strdup(autho);
Type = strdup(type);
Title = strdup(title);
Pages = pages;
Yearpublished = yearpublished;
Publishing = publishing;
}
~Book(){
if(Author != NULL){
free(Author);
}
if(Type != NULL){
free(Type);
}
if(Title != NULL){
free(Title);
}
}
};
int main(){
cout << "main start" << endl;
Book s("edgar", "science", "chemistry for dummies", "502","12.11.13","1.12.96");
cout << "main finish" << endl;
return 0;
}
작성하신 내용이 C++가 아닙니다. 모든'char *'줄을 버리고'std :: string'으로 바꾸십시오. – meagar
문자열 작성자와 얼마나 비슷한가요? –
코드를 올바르게 복사했다고 가정 할 때 내가 할 수있는 최선의 조언은 해당 책의 사용을 중단하는 것입니다. 이 코드는 용서할 수 없을 정도로 * 망가졌습니다. 이 코드가 컴파일되어 예상대로 작동하는 C++의 역사에는 아무런 의미가 없습니다. 나는 C++ 코드의 더 나쁜 예제를 생각할 수 없다. – meagar