现在我的实现按值返回事物。成员m_MyObj
本身不是const
- 其值会根据用户使用组合框选择的内容而更改。我不是C ++大师,但我想这样做。如果我只是在&
前面将GetChosenSourceSystem
粘贴在两个decl中。和impl。,我得到一种编译器错误。如果我做一个而不是另一个 - 另一个错误。如果我做return &m_MyObj;
。我暂时不会列出这里的错误,除非有强烈的需求。我假设有经验的C ++编码器可以告诉我这里发生了什么。我可以省略constness或reference,但我想把它弄得很紧,并在这个过程中学习。
// In header file
MyObj GetChosenThingy() const;
// In Implementation file.
MyObj MyDlg::GetChosenThingy() const
{
return m_MyObj;
}
答案 0 :(得分:8)
返回的对象必须是const,因此您无法从外部更改它;
// In header file
const MyObj& GetChosenThingy() const;
// In Implementation file.
const MyObj& MyDlg::GetChosenThingy() const
{
return m_MyObj;
}