1. ホーム
  2. c++

[解決済み】C++で関数から構造体を返すには?

2022-02-23 12:43:45

質問

この関数はどのようにすれば構造体を返すのですか?return newStudent;」を試すと、「studentTypeからstudentTypeへの適切なユーザー定義変換が存在しません」というエラーが表示されます。

// Input function
studentType newStudent()
{   
    struct studentType
    {
        string studentID;
        string firstName;
        string lastName;
        string subjectName;
        string courseGrade;

        int arrayMarks[4];

        double avgMarks;

    } newStudent;

    cout << "\nPlease enter student information:\n";

    cout << "\nFirst Name: ";
    cin >> newStudent.firstName;

    cout << "\nLast Name: ";
    cin >> newStudent.lastName;

    cout << "\nStudent ID: ";
    cin >> newStudent.studentID;

    cout << "\nSubject Name: ";
    cin >> newStudent.subjectName;

    for (int i = 0; i < NO_OF_TEST; i++)
    {   cout << "\nTest " << i+1 << " mark: ";
        cin >> newStudent.arrayMarks[i];
    }

    newStudent.avgMarks = calculate_avg(newStudent.arrayMarks,NO_OF_TEST );
    newStudent.courseGrade = calculate_grade (newStudent.avgMarks);

}

解決方法は?

スコープに問題があります。構造体を定義するのは、関数の前であって、関数の中ではないのです。