J'ai appris des cours en C++ et j'ai obtenu un certain code d'un vieux livre russe sur un cours de livre, j'ai essayé de le modifier et de le faire fonctionner peut-être m'aider à comprendre pourquoi authour utilisé ce code (ce qui ne strdup pas?)comment travailler avec les classes
Author = strdup(autho);
dans le constructeur et était mal avec cette ligne de code
Book s("edgar", "science", "chemistry for dummies", "502","12.11.13","1.12.96");
Toute personne avec une explication simple droit?
Code principal ci-dessous
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;
}
Ce que vous écrivez n'est pas C++. Veuillez jeter toutes les lignes 'char *' et remplacez-les par 'std :: string'. – meagar
comment comme l'auteur de la chaîne? –
En supposant que vous avez correctement copié le code du livre, le meilleur conseil que je peux vous donner est d'arrêter d'utiliser ce livre. Ce code est * impardonnable * cassé. Il n'y a aucun point dans l'histoire de C++ où ce code aurait compilé et travaillé comme prévu. Je ne peux pas penser à un exemple de code C++ pire. – meagar