我是c ++的新手,并且正在关注一个在线教程,我已经多次复制了这些人代码并且无法弄清楚出了什么问题。它只输出乱码。
我正在使用code :: blocks
这是它输出的内容(下面的链接)
https://gyazo.com/9c2786ef20fb3878354a72904d126f7e
我的实际代码
的main.cpp
#include <iostream>
#include "Person.h"
using namespace std;
int main()
{
Person person;
cout << person.toString() << endl;
return 0;
}
Person.cpp
#include "Person.h"
#include <sstream>
Person::Person()
{
age = 0;
name = "jeff";
}
string Person::toString(){
stringstream ss;
ss << "Name: ";
ss << name;
ss << "; age: ";
ss << age;
}
Person.h
#ifndef PERSON_H
#define PERSON_H
#include <iostream>
using namespace std;
class Person{
private:
string name;
int age;
public:
Person();
string toString();
};
#endif // PERSON_H
答案 0 :(得分:4)
您的代码存在两个问题。您永远不会返回值,您也应该使用stringstream.str()
:
int main()
{
Person person;
cout << person.toString() << endl;
return 0;
}
string Person::toString() {
stringstream ss;
ss << "Name: ";
ss << name;
ss << "; age: ";
ss << age;
return ss.str();
}