提问者:小点点

带有参数和数组输入的构造函数不能工作C++


我面临的问题参数化构造函数与数组用户输入。

我的问题是:

创建一个名为Student的类,并创建一个具有参数的构造函数,如Student(int i,string n,double s)。有三个私有变量,分别为int id,string name,double score,使用int getID()、string getName()、double getScore()获取输入,使用void print()输出。您需要定义包括构造函数在内的所有成员函数。然后在主函数中定义3个Student,获取对象的值并输出详细信息。

我的代码如下:

#include <bits/stdc++.h>
#include <cstring>
using namespace std;

class Student
{
private :
    int id;
    string name;
    double score;

public:
    Student();
    Student (int i, string n, double  s)
    {
        id = i;
        name = n;
        score = s;
    }
    int getID()
    {
        cin >> id;
        return id;
    }
    string getName()
    {
        getline(cin,name);
        return name;
    }
    double getScore()
    {
        cin >> score;
        return score;
    }

    void print()
    {
        cout << id << " " << name << " " << score << " " << endl;
    }
    };

   int main()
   {

       Student stuArr[10];
       int i;

       for(i = 0; i < 3; i++)
       {
              cout << "Student " << i + 1 << endl;

              cout << "Enter ID: " << endl;
              stuArr[i].getID();

              cout << "Enter name: " << endl;
              stuArr[i].getName();

              cout << "Enter marks: " << endl;
              stuArr[i].getScore();
       }

       for(i = 0; i < 3; i++)
       {
              stuArr[i].print();
       }

       return 0;
     }

但我的代码不起作用。Id不显示任何输出。它构建但不给出任何输出。


共1个答案

匿名用户

当前代码甚至不可编译,您将得到一个错误:对student::student()的未定义引用。您的构造函数缺少身体。将student();更改为student(){}

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(带有|参数|数组|输入|构造|函数|工作|c++)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?