C++ 如何打印学生';C+的s年级(班级学生)+;
我有一个班的学生 字符串姓氏; 成绩册的未签名整数; 静态整数大小; unsigned int*p=新的unsigned int[size]强> 但是一系列的等级似乎没有被输出 我的代码: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
#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!或者更好的方法:使用向量。我已经修改了一些代码。但让我告诉你你的错误
班级学生{
私人:
串姓;
成绩册的整数;
整数大小;
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
在那里做什么?“或者更好:使用向量。”-我可以支持的位:)“或者更好:使用向量。”-我可以支持的位:)