関数 return ステートメントでエラーが発生します。関数宣言が次の場合に何を返すかを理解するのが難しい:
const vector<Message*>& getMessages(string messageBox) const;
クラス Message、Box、MessageBox があります。
class Box
{
public:
vector <Message> *messages;
string name;
public:
Box();
~Box();
};
class MessageBox
{
public:
MessageBox();
~MessageBox();
const vector<Message>& getMessages(string messageBox) const;
private:
Box *inbox;
};
今、関数 getMessages を実装しようとしています。Box *inbox のベクトル *メッセージを返そうとしています。次のようになります。
const vector<Message>& MessageBox::getMessages(string messageBox) const
{
if(messageBox == "inbox")
return (const_cast <vector<Message>&>(inbox->messages));
}
これにより、前述のエラーが発生します。たぶん、変数を変更する必要があります。
何か案は?ありがとうございました。