Ich erhalte diese Fehlermeldung:Warum erhalte ich diesen Fehler bei der Zuweisung von Statistiken, wenn die beiden Variablen, die ich einander zuweise, beide vom Typ String sind?
error: cannot convert 'std::string {aka std::basic_string<char>}' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'
Welche Ich gehe davon aus, bedeutet es nicht in der Lage ist mein einziger Titel String in meine newtitle Zeichenfolge zuzuweisen, weil sie nicht vom gleichen Typ sind. (Von denen eine char und die andere const char nehme ich an?)
strcpy(title, newtitle);
Aber sie sind sowohl als Typ String definiert, so dass ich bin ein wenig verwirrt, was es ist, dass ich diesen Fehler gibt. Obwohl ich falsch liegen könnte, was genau dieser Fehler bedeutet.
#include<iostream>
#include<iomanip>
using namespace std;
#include <cstring>
class Movie{
private:
string title;
int year;
string director;
public:
void setTitle(string); // function prototype
void setYear(int); // function prototype
void setDirector(string); // function prototype
void displayMovie(); // function prototype
};
void Movie::setTitle(string newtitle)
{
strcpy(title, newtitle);
}
int main()
{
Movie myMovie;
string movietitle;
cout << "Enter the title of the Movie: " << endl;
cin >> movietitle;
myMovie.setTitle(movietitle);
}
Sie brauchen nicht 'strcpy' für' std :: string' Variablen. Sie brauchen das für die alten C-Style Strings, die eigentlich ein einfaches Array von 'Char's sind. 'std :: string' ist eine viel komplexere Klasse und unterstützt direkte Zuweisung, wie' title = newtitle; '. –
Dieser Code wird den Fehler nicht reproduzieren. Erstellen Sie ein vollständiges Beispiel, das Ihren Fehler reproduziert. –
@MarkTolonen: Die Frage bezieht sich auf einen schwerwiegenden Fehler bei der Kompilierung. Aber Sie haben Recht, es gibt einen weiteren Fehler in diesem Code, der verhindert, dass die gemeldete Fehlermeldung angezeigt wird. –