C++ Error: no match for call to ‘(std::string {aka std::basic_string<char>}) (std::string&)’

Je suis novice en C++. Je recherche à plusieurs reprises, mais toujours pas la réponse. Je suis en train d'écrire une classe nommée Cours de décrire les cours les étudiants de prendre à l'école. Les Cours de la classe a 3 champs:

protected:
    string courseName;
    int courseNum;
    float score; 

Et j'ai une méthode publique "setName" pour définir le nom du cours:

Course &setName(string name)
{
    this->courseName(name);
    return (*this);
}

Cependant, lorsque j'ai essayé de compiler, le compilateur se plaint que:
C++ Error: no match for call to ‘(std::string {aka std::basic_string}) (std::string&)’
J'ai aussi essayé de modifier le code pour Cours &setName(string &nom)... Et le compilateur continue à se plaindre de la même erreur.

Mais si je change le code:

Course &setName(string name)
{
    this->courseName = name;
    return (*this);
}

Alors qu'il fonctionne bien. Je ne pouvais pas comprendre ce que le compilateur se plaint et pourquoi je ne peux pas utiliser directement l'initialisation?

Le premier exemple est d'essayer d'invoquer un appel de fonction de l'opérateur. std::string ne pas déclarer cet opérateur qui résultats dans l'erreur que vous recevez.

OriginalL'auteur Dreamer | 2013-06-23