C++ のクラスを作成しようとすると、問題が発生します。これは私のヘッダー file.h です:
#include <iostream>
#include <string>
#ifndef MESSAGES__H__
#define MESSAGES__H__
class Message
{
public:
Message(std::string recipient, std::string sender);
void append(std::string text);
std::string to_string() const;
void print() const;
private:
std::string recipient;
std::string sender;
std::string message;
std::string text_input;
char* timestamp;
};
#endif
メイン メソッドを実行すると、getline(cin,) からエラー メッセージが表示されます。
int main()
{
vector <Message*> message_list;
Message* message1 = new Message("Student1", "Gabriel");
cout << "Enter message text line, enter . on new line to finish: " << endl;
while(getline(cin, text_input))
{
}
}
getline メソッドは、オーバーロードされた関数のインスタンスを提供していません。また、同じ行から、text_input は識別子が未定義であることを示しています。私はすでに.hクラスで宣言したと思いましたか?
前もって感謝します。
更新部分
これで、すべてのエラーが修正されました。
vector <Message*> message_list;
Message* message1 = new Message("Saiful", "Gabriel");
cout << "Enter message text line, enter . on new line to finish: " << endl;
while(getline(cin, message1->get_text_input()))
{
if(message1->get_text_input() == ("."))
{
break;
}
else
{
message1->append(message1->get_text_input());
}
}
while ループ内で、一度 "." 改行の先頭で検出された場合、おそらく停止します。しかし、何度入力しても「。」新しい行では、プロンプトが表示され続けます。理由を知っている人はいますか?