gpt4 book ai didi

c++ - C++如何从函数返回对象数组

转载 作者:行者123 更新时间:2023-12-02 09:57:47 24 4
gpt4 key购买 nike

最近,我开始学习c++,因此,我尝试使用自己的基础知识来制作一个简单的成绩计算器(我对Javascript已有很好的了解,所以我知道编程的基础知识)。
因此,在这种情况下,我必须从函数调用中返回一个对象数组,以便以后可以在程序中使用它,但我只是找不到正确的方法。
因此,基本上我想从subArr函数返回getInput,但是由于我的语言基础知识,我无法做到这一点。我尝试使用Google搜索,但没有找到任何简单的解决方案。
这是代码,希望它很简单:

//the Subject class:
class Subject {
public:
string name;
float grade;
int factor;

Subject(){};

Subject(string x, float y, int z){
name = x;
grade = y;
factor = z;
}
};

//get Input function declaration
Subject getInput(int num){

//array of objects of type "Subject"
Subject subArr[num];

//a for loop to assign the array's elements
for(int i = 0; i < num; i++){
string name;
float grade;
int factor;

cout << "what is the name of subject " << i+1 <<"? "<<endl;
cin >> name;

cout << "what is the grade of subject " << i+1 << "? "<<endl;
cin >> grade;

cout << "what is the factor of subject " << i+1 << "? "<<endl;
cin >> factor;

subArr[i]=Subject(name, grade, factor);
};

//trying to return the subArr at last
return subArr;
};

//main function
int main(){
//get the number of subjects
int numOfSubjects;
cout << "how many subjects are there? ";
cin >> numOfSubjects;

//trying to receive the subArr from getInput call
Subject subArr = getInput(numOfSubjects);

};

最佳答案

使用std::vector:

#include <iostream>
#include <vector>

using namespace std;

// the Subject class
class Subject {
public:
string name;
float grade;
int factor;

Subject(){};

Subject(string x, float y, int z){
name = x;
grade = y;
factor = z;
}
};

// get Input function declaration
vector<Subject> getInput(int num){

// array of objects of type "Subject"
vector<Subject> subArr;

// a for loop to assign the array's elements
for(int i = 0; i < num; i++){
string name;
float grade;
int factor;

cout << "what is the name of subject " << i+1 <<"? "<<endl;
cin >> name;

cout << "what is the grade of subject " << i+1 << "? "<<endl;
cin >> grade;

cout << "what is the factor of subject " << i+1 << "? "<<endl;
cin >> factor;

subArr.push_back(Subject(name, grade, factor));
};

// trying to return the subArr at last
return subArr;
};

// main function
int main(){
// get the number of subjects
int numOfSubjects;
cout << "how many subjects are there? ";
cin >> numOfSubjects;

// trying to receive the subArr from getInput call
vector<Subject> subArr = getInput(numOfSubjects);
};

关于c++ - C++如何从函数返回对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64373574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com