C++ 如何打印学生';C+的s年级(班级学生)+;

C++ 如何打印学生';C+的s年级(班级学生)+;,c++,C++,我有一个班的学生 字符串姓氏; 成绩册的未签名整数; 静态整数大小; unsigned int*p=新的unsigned int[size] 但是一系列的等级似乎没有被输出 我的代码: #include <iostream> #include <conio.h> #include <string> using namespace std; class Student { private: string surname; unsigned in

我有一个班的学生

字符串姓氏; 成绩册的未签名整数; 静态整数大小; unsigned int*p=新的unsigned int[size]

但是一系列的等级似乎没有被输出

我的代码:

#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

class Student {
private:
    string surname;
    unsigned int number_of_gradebook;
    static int size;
    unsigned int *p = new unsigned int[size];
public:
    Student(string s, unsigned int n, static int size, unsigned int *q):surname(s) {
        number_of_gradebook = n;
        //unsigned int *p = new unsigned int[size];
        for (int i = 0; i++; i < size) {
            p[i]=q[i];
        }
    }
    Student() {}
    ~Student() { delete[]p; }

    //friend std::ostream& operator<<(std::ostream&, const Student);
    string GetSurname() const { return surname; }
    unsigned int GetNumOfGrdb() const { return number_of_gradebook;  }
    unsigned int GetMarks() const { return *p; }
    void Print_Student();

};

int Student::size=0;

void Student :: Print_Student() {
    cout << "Student: " << surname << "\t" << number_of_gradebook << endl;
    if (size) {
        for (int i = 0; i++; i < size) {
            cout << p[i] << "\t";
        }
    }
}

class Group {
    Student *s;
    int count;
public:
    Group(int n=0) {
        s = new Student[count = n];
    }
    ~Group() { delete[]s; }
    friend void AddStudent();
    friend void DeleteStudent();
    friend void FindAveragePoint();
    friend void PrintFiveBest();
    void output() {
        cout << s << endl;
    }
};

int main() {
    Student A("Ivanov", 45368400, 5, new unsigned int[5] {3,4,4,5,3});
    A.Print_Student();
    cout << A.GetMarks();
    system("pause");
}
#包括
#包括
#包括
使用名称空间std;
班级学生{
私人:
串姓;
成绩册的未签名整数;
静态整数大小;
unsigned int*p=新的unsigned int[size];
公众:
学生(字符串s,无符号整数n,静态整数大小,无符号整数*q):姓氏{
成绩册的数量=n;
//unsigned int*p=新的unsigned int[size];
用于(int i=0;i++;i//friend std::ostream&operator假设这是一项任务,不允许您使用STL。如果允许您使用STL,则放弃所有手动内存管理并改用。如果不允许,请继续阅读

成员
size
始终为0。并且
size
的设计存在问题。如果它是静态的(对于
Student
的所有实例都是一样的),那么为什么构造函数中有一个参数
size
不起任何作用?我认为
size
应该是一个正常的成员,而不是静态的

Student(string s, unsigned int n, int size, unsigned int *q) : 
    surname(s),
    number_of_gradebook(n),
    size(size),
    p(new unsigned int[size])
{
    ...
}

另一个问题是这个混乱的循环:
for(inti=0;i++;i

应为(int i=0;i

小心,在代码的更深处重复此错误


另外,这一行:
s=new Student[count=n];
可能有效,但它不起作用,正如您可能认为的那样,很难阅读,应该在初始值设定项列表中分成两行,甚至更好:

Group(int n) : 
    count(n),
    s(new Student[count])
{...}

记住,
newx[0]
无效。因此最好删除默认值或使用0以外的值!或者更好:使用向量。

假设这是一个赋值,不允许使用STL。如果允许使用STL,则放弃所有手动内存管理,改用。如果不允许,请继续阅读

成员
size
始终为0。并且
size
的设计存在问题。如果它是静态的(对于
Student
的所有实例都是一样的),那么为什么构造函数中有一个参数
size
不起任何作用?我认为
size
应该是一个正常的成员,而不是静态的

Student(string s, unsigned int n, int size, unsigned int *q) : 
    surname(s),
    number_of_gradebook(n),
    size(size),
    p(new unsigned int[size])
{
    ...
}

另一个问题是这个混乱的循环:
for(inti=0;i++;i

应为(int i=0;i

小心,在代码的更深处重复此错误


另外,这一行:
s=new Student[count=n];
可能有效,但它不起作用,正如您可能认为的那样,很难阅读,应该在初始值设定项列表中分成两行,甚至更好:

Group(int n) : 
    count(n),
    s(new Student[count])
{...}

请记住,
new X[0]
无效。因此,最好删除默认值或使用非0!或者更好的方法:使用向量。

我已经修改了一些代码。但让我告诉你你的错误

  • 在构造函数的参数中写入static是不必要的
  • 学习for循环的语法。它是for(init,cond,increment){}
  • 在您的打印中,size的值为零。因此,如果条件为false,它将永远不会执行代码。 看看这个,如果你没有得到任何角色,请告诉我
  • 班级学生{
    私人:
    串姓;
    成绩册的整数;
    整数大小;
    int*p;
    公众:
    学生(字符串s,int n,int siz,int*q):姓氏{
    尺寸=尺寸;
    成绩册的数量=n;
    p=新整数[siz];
    对于(int i=0;i对于(inti=0;i我已经修改了您的一些代码。但是让我告诉您您的错误

  • 在构造函数的参数中写入static是不必要的
  • 学习for循环的语法。它是for(init,cond,increment){}
  • 在您的打印中,size的值为零。因此,如果条件为false,它将永远不会执行代码。 看看这个,如果你没有得到任何角色,请告诉我
  • 班级学生{
    私人:
    串姓;
    成绩册的整数;
    整数大小;
    int*p;
    公众:
    学生(字符串s,int n,int siz,int*q):姓氏{
    尺寸=尺寸;
    成绩册的数量=n;
    p=新整数[siz];
    对于(int i=0;i对于(inti=0;我有太多的朋友…:-/你需要的是教科书而不是建议…
    Student(字符串s,unsigned int n,static int size,unsigned int*q):姓氏{
    -那
    static
    在那里做什么?那么多朋友…:-/你需要的是教科书而不是建议…
    Student(字符串s,unsigned int n,static int size,unsigned int*q):姓氏(s){
    -那
    static
    在那里做什么?“或者更好:使用向量。”-我可以支持的位:)“或者更好:使用向量。”-我可以支持的位:)