现在我的实现按值返回事物。成员 m_MyObj
本身不是 const
- 它的值根据用户使用组合框选择的内容而变化。我不是 C++ 大师,但我想正确地做到这一点。如果我只是在两个声明中的 GetChosenSourceSystem
前面粘贴一个 &
。并且暗示。,我得到一种编译器错误。如果我做了一个而不是另一个 - 另一个错误。如果我执行 return &m_MyObj;
。这里暂时不列出错误,除非有强烈的需求。我假设有经验的 C++ 编码人员可以知道这里发生了什么。我可以省略 constness 或 reference,但我想使其紧凑并在此过程中学习。
// In header file
MyObj GetChosenThingy() const;
// In Implementation file.
MyObj MyDlg::GetChosenThingy() const
{
return m_MyObj;
}
最佳答案
返回的对象必须是const,所以你不能从外部改变它;
// In header file
const MyObj& GetChosenThingy() const;
// In Implementation file.
const MyObj& MyDlg::GetChosenThingy() const
{
return m_MyObj;
}
关于c++ - 通过引用访问 const 的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647796/