ユーザーが 3 つの名前を入力できるようにし、名前のリストを表示するプログラムを作成しました。
このプログラムをコンパイルできません。エラー メッセージは、「エラー: 'input' のメンバー 'list' の要求、これは非クラス タイプ 'Name()' input.list(); です。」
私が間違ったことを理解していません。
#include <iostream>
#include<list>
#include<string>
using namespace std;
class Name
{
std::list<string> namelist;
public:
Name();
void list();
};
Name::Name()
{
int i;
string input[i];
for(i=0; i<3; i++)
{
cout<<"Insert name: "<<input[i]<<endl;
namelist.push_front(input[i]);
}
}
void Name::list()
{
for (std::list<string>::iterator NL = namelist.begin(); NL != namelist.end(); NL++)
std::cout << *NL << ' ';
std::cout << '\n';
}
int main()
{
Name input();
input.list();
return 0;
}
あなたにはmain()
、Name input();
オブジェクトの定義はありませんが、次のようになります。
Name input;
のコンストラクターでやりたいことName
は次のとおりだと思います。
Name::Name()
{
const int SIZE = 3;
string input[SIZE]; // size of array should be const
for (int i = 0; i<SIZE; i++)
{
cout << "Insert name: " << endl;
cin >> input[i];
namelist.push_front(input[i]);
}
}
そして改善できます。input
一時的な値を格納するためにのみ使用されるため、配列を使用する必要はありません。
Name::Name()
{
const int SIZE = 3;
string input; // only stores temporary value, no need to use array
for (int i = 0; i<SIZE; i++)
{
cout << "Insert name: " << endl;
cin >> input;
namelist.push_front(input);
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加