Я хотел бы, чтобы эта программа отображала строки «Gianna» «Maria» и «M» на экране, но я не могу. Ошибок нет, поэтому я думаю, что с моей программой что-то не так. Любые предложения, которые могли бы исправить мою программу?Строки C++ не работают
#include <iostream>
#include <string>
using namespace std;
class name
{
string fName, mName, sName;
public:
name (string fName, string mName, string sName){};
void setFName (string fName);
void setMName (string mName);
void setSName (string sName);
string getFName() const {return fName;}
string getSName() const {return sName;}
string getMName() const {return mName;}
friend ostream & operator <<(ostream &, const name &);
};
ostream& operator<<(ostream& os, const name& n) {
return os << n.fName << " " << n.sName<< " " << n.mName;
}
int main()
{
name myName ("Gianna", "Maria", "M");
cout<<myName.getFName()<<" "<<myName.getMName()<<" "<<myName.getSName()<<endl;
return 0;
}
'имя (строка имя_файла, строка mName, строка зЫате)' - Это не очень хорошая идея, чтобы назвать ваши параметры так же, как ваши переменные-члены. Вероятно, поэтому вы подумали, что созданный вами конструктор волшебным образом задает эти переменные-члены, сопоставляя имена - нет, это не работает. – PaulMcKenzie
Кроме того, вы можете использовать оперу << вашего класса в строке cout: 'cout << myName << endl;' – Rama