const accessor的语法通过引用

Ham*_*jan 2 c++ const accessor

现在我的实现按值返回.成员m_MyObj本身不是const- 它的值会根据用户使用组合框选择的内容而更改.我不是C++大师,但我想这样做.如果我只是坚持在两个decl &前面GetChosenSourceSystem.和impl.,我得到一种编译器错误.如果我做一个而不是另一个 - 另一个错误.如果我这样做return &m_MyObj;.我暂时不会列出这里的错误,除非有强烈的需求.我假设有经验的C++编码器可以告诉我这里发生了什么.我可以省略constness或reference,但我想让它紧凑并在这个过程中学习.

// In header file
MyObj GetChosenThingy() const;

// In Implementation file.
MyObj MyDlg::GetChosenThingy() const
{
    return m_MyObj;
}
Run Code Online (Sandbox Code Playgroud)

Vik*_*ehr 8

返回的对象必须是const,所以你不能从外面改变它;

// In header file
const MyObj& GetChosenThingy() const;

// In Implementation file.
const MyObj& MyDlg::GetChosenThingy() const
{
    return m_MyObj;
}
Run Code Online (Sandbox Code Playgroud)