我有一個名爲Funcionario這樣的類:C++與功能類/結構分配值問題
class Funcionario
{
public:
string nome;
int cpf;
void preencher(string nome, int cpf);
};
和preencher工作原理是這樣的功能:
void Funcionario::preencher(string nome, int cpf)
{
this->nome = nome;
this->cpf = cpf;
}
在我聲明的主要功能Funcionario功能和一切工作正常時,我直接設置名稱和CPF
cin >> Func.nome >> Func.cpf;
或callin g這樣的功能:
string nome;
int cpf;
cin >> nome >> cpf;
Func.preencher(nome, cpf);
但我試着做不同的事情,我有一個問題。的 代替宣告內部Funcionario功能preencher,我聲明它以外的功能與類型Funcionario 的參數,然後設置「諾姆」和「CPF」值在函數是這樣的:
void preencher(Funcionario func)
{
cin >> func.nome;
cin >> func.cpf;
}
如果我嘗試設置Func nome和cpf直接與
cin >> Func.cpf >> Func.nome;
它工作正常。 但是,如果我嘗試調用新preencher功能一樣,
preencher(Func);
與諾姆=若昂和CPF = 7842,例如, 當我打印的名字,我得到一個空字符串,當我打印int cpf我得到非常奇怪的值,如-1425739872或-1121695152。 爲什麼第一種方法在打印時(以及分配數值)工作正常,但第二種方法沒有? 我很確定這是一個重複的問題,但我很努力地找到一個解決方案,但我不能。
試試'void preencher(Funcionario&func)' –