我已经编写了一个代码来打印2个工人的名字,但它会打印垃圾.
cout << "highest salary: " << highestSalary.getID() << " " << highestSalary.getName() << endl;
cout << "hardest worker: " << mostHours.getID() << " " << mostHours.getName();
Run Code Online (Sandbox Code Playgroud)
函数getName()在worker类中定义为:
char* Worker::getName()
{
char temp[20];
int i;
strcpy(temp, name);
return temp;
}
Run Code Online (Sandbox Code Playgroud)
在调试器上经历这一点我尝试将最高级别的帐户放入一个ver char*temp中,并且值是我预期的,让我们说"bob",但是在cout之后值为""和cout印刷垃圾.
NO NO NO,您正在返回指向本地函数变量的指针.这就是崩溃的原因.
改为:
std::string Worker::getName()
{
std::string temp(name); // not sure what type of name is...
return temp;
}
Run Code Online (Sandbox Code Playgroud)
别忘了#include<string>.
现在你有了真正的C++,而不是C和指针.
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |