我对C ++比较陌生。 我正在使用一个函数给一个对象一些值,但我不断得到该对象正在使用而不被初始化的错误。怎么样?
Worker
的定义:
class Worker
public:
int telephone;
char firstname[20];
char task[100];
int salary;
int id;
};
实际代码:
Worker worker1;
worker1 = getWorker(worker1);
Worker getWorker(Worker worker){
cout << "First name: ";
cin >> worker.firstname;
return worker;
答案 0 :(得分:1)
getWorker
不需要参数。使用本地对象获取输入,并将其返回:
Worker getWorker() {
Worker worker;
// whatever
return worker;
}
此外,使用初始化而不是创建对象然后分配给它们。像这样:
Worker worker1 = getWorker();
答案 1 :(得分:0)
由于您没有明确设置firstname的值,因此可能存在构成firstname的20个字节中存储的任何类型的垃圾。 char缓冲区以0结尾,因此最佳做法是在默认构造函数中为firstname提供初始值:
Worker(){
//omitting other code
firstname[0] = '\0';
}
当然,如果您希望变量保存实际值,最好将其传递给构造函数。