Visual c++ 如何用数据成员和成员函数C++编写类

Visual c++ 如何用数据成员和成员函数C++编写类,visual-c++,Visual C++,嗨,伙计们,我想让你们帮我完成作业,我曾试图解决它,但有一些事情让我:我知道如何创建名称和id 字符串名; int-Id bt wt是指指向动态分配的等级数组的指针:s:s:s? i jst knw如何声明一个指针,如:double*Grades 这是作业 创建包含以下数据成员的StudentGrades类: 名称:类型字符串 Id:type整数 等级:指向动态分配的等级数组的指针。类型为:指向double*double的指针 它包括以下成员功能: 无参数构造函数 一种构造函数,它接受两个参数:

嗨,伙计们,我想让你们帮我完成作业,我曾试图解决它,但有一些事情让我:我知道如何创建名称和id

字符串名; int-Id

bt wt是指指向动态分配的等级数组的指针:s:s:s? i jst knw如何声明一个指针,如:double*Grades

这是作业

创建包含以下数据成员的StudentGrades类:

名称:类型字符串 Id:type整数 等级:指向动态分配的等级数组的指针。类型为:指向double*double的指针 它包括以下成员功能:

无参数构造函数 一种构造函数,它接受两个参数:字符串和整数,并用字符串初始化名称,用整数初始化ID。 设置和获取Name、ID的函数 学生信息的打印功能。它打印姓名、身份证和成绩。 类对象的重载赋值运算符 类对象的副本构造函数 使用复制构造函数和重载赋值运算符的语法。

在另一个文件中创建一个C++程序,它提示用户创建四个类学生对象的数据。第一个对象std1有5个等级,第二个std2有6个等级,第三个std3有4个等级,第四个std4没有等级和数据。 然后将std2复制到std4中,并将std1分配给std3。然后打印四个对象的详细信息

嘿,我解决了我的任务,我正在试着运行它,但它不起作用。有人能告诉我程序的问题在哪里吗

#include <iostream>

using namespace std;

class student_grades{
private:
    string name,n;
    int Id,i;
    double* grades[];

public:
    student_grades();

    student_grades(sting, int);

    student_grades(const student_grades&);

    void set(string name,int Id){
        cout << "enter the name and the ID";
        cin >> n >> i;
        n = name;
        i = Id;
    }

    void get(){
        return i;
        return n;
    }

    void student_grades (student_grades&opr){
        name = name.opr;
        Id = Id.opr;
        grades[] = grades[].opr;
    }

    void student_info(){
        cout << "the name of the student is:" << name;
        cout << "the id for the srudent is:" << Id;
        grades = new double[];
        cout << "the grades of the student is:" << grades[] << endl;
        delete []grades;
    }

};

student_grades::student_grades() {}

student_grades::student_grades(string name, int Id) {
    name=" ";
    Id=0;
}

student_grades::student_grades(const student_grades& copy) {
    name=copy.name;
    Id=copy.Id;
}

int main() {

    student_grades std1;
    std1.set();
    cin >> std1.grades[5];
    std1.get();

    student_grades std2;
    std2.set();
    cin >> std2.grades[6];
    std2.get();

    student_grades std3;
    std3.set();
    cin >> std3.grades[4];
    std3.get();

    student_grades std4;
    std4.set();
    cin >> std4.grades[];
    std4.get();

    std1 = std3;
    std2 = std4;

    cout << std1 << std2 << std3 << std4;

    return 0;
}

动态分配的数组是一个直到运行时才给定特定大小的数组,这与编译时的固定数组声明不同。固定数组的声明如下所示:

int grades[500];
该数组将为500个整数分配内存,并保持这种状态,除非您破坏它或调整它的大小

创建动态分配的阵列看起来更像这样:

int* grades = NULL; // A declaration in your StudentGrades class
int n = <get size from somewhere>; // Makes the size "dynamic"
grades = new int[n]; // This definition could be in your StudentGrades ctor,
                     // with n being a parameter.

非常感谢这真的很有帮助。我可以问更多的问题吗?是的,你可以问更多的问题,但我不会为你做家庭作业。哈哈,不,不,你不会做的,我很困惑。不要担心我们如何打印一个函数,我们没有从用户那里获取输入?好的。。。要问其他问题,不要发布新问题,只需编辑您的原始帖子即可。
delete [] grades;
grades = NULL;