具有用户输入 (C++) 的参数化构造函数

Parameterized Constructor with user input (C++)

本文关键字:参数 构造函数 C++ 用户 输入      更新时间:2023-10-16

我正在编写一个程序,要求用户开发两种类型的问题:对/错或多项选择。我已经编写了类 QuestionTF 和 QuestionMC - 这两个类派生自它们的基类 Question。我已经为 TF 和 MC 实现了参数:

QuestionTF(string theQuestion, int pointValue, string theAnswer)
        : Question(theQuestion, pointValue)

QuestionMC(string theQuestion, int pointValue, string theAnswer)
        : Question(theQuestion, pointValue)

当我在 main 中调用构造函数时 - 它看起来像问题TF(字符串、值、字符串)。我将如何对构造函数参数进行编码,以便用户能够提出问题、输入值并选择他们的答案(所有这些都将在 if 语句中设置,询问用户他/她想要设置哪种类型的问题)?

例:问题TF("问题", 0, "答案");

这是你的答案。我在构造函数中传递了 6 个参数,其中 3 个用于不正确的选项。同样,您也可以为 true 和 false 实现此逻辑。

class question{
public:
question(string question, int pointValue, string opt1,string opt2, string opt3, string opt4){
    int userinput;
    cout<<"Your question is :"<<endl<<question;
    cout<<endl<<"1. "+opt1<<endl<<"2. "+opt2<<endl<<"3. "+opt3<<endl<<"4. "+opt4<<endl;
    cin>>userinput;
    if (userinput== pointValue) {
        cout<<endl<<"Your answer is correct";
    }
    else
        cout<<endl<<"Your answer is incorrect";
}
question(string question, int pointValue){
    int userinput;
    cout<<"Your question is :"<<endl<<question<<endl;
    cout<<endl<<"1. True"<<endl<<"2. False"<<endl;
    cin>>userinput;
    if (userinput == pointValue) {
        cout<<"Your answer is correct";
    }
    else
        cout<<"Your answer is incorrect";
}
};
int main(){
question q = question("What is Capital of India ?",1,"Delhi","kolkata","Mumbai","Chennai");
}