当前位置: 首页 > 知识库问答 >
问题:

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

丁韬
2023-03-14

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

我的问题是:

创建一个名为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个答案

吴凯
2023-03-14

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

 类似资料:
  • 我使用的是jdk8,需要创建一个以类名作为构造函数参数的Spring组件。但是,使用我当前的代码,我遇到了运行时错误: 这是我的博客类: 这就是我尝试创建类的方式: 我可以了解一下创建该组件的正确方法/这里出了什么问题吗?提前感谢。

  • 我有以下代码: 我不希望字段ui有一个getter,但是kotlin在默认情况下会生成它,因为它是构造函数中定义的val。 在properties and fields文档中,我发现我可以用以下代码生成一个私有getter 但我在构造函数定义中找不到这样做的方法

  • 我得到了MyViewModel,它的构造函数是空的 我想提供这样的新模型,但有一个问题: 我确实实现了ViewModelProvider.Factory 但我不知道该怎么办,把没有指标的工厂退回去。如何实现? 谢谢

  • 问题内容: 我想在 Spring Java配置中 创建一个Spring bean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个bean fixedLengthReport ,它在构造函数中需要一些参数。 但是我收到错误消息, 表明 未找到bean 导致 sourceSystem 无法连接。如何使用运行时构造函数参数创建bean? 我正在使用Spring 4.2 问题答案:

  • 问题内容: 运行以下代码时出现错误: 输出为: 有什么问题? 问题答案: 该方法应命名为构造函数,而不是。(请注意双下划线。) 如果使用单个下划线,则只需创建一个名为的方法,然后获取一个不带参数的默认构造函数。

  • Kotlin中的参数与Java中有些不同。如你所见,我们先写参数的名字再写它的类型: fun add(x: Int, y: Int) : Int { return x + y } 我们可以给参数指定一个默认值使得它们变得可选,这是非常有帮助的。这里有一个例子,在Activity中创建了一个函数用来toast一段信息: fun toast(message: String, length: I