定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写main函数使用这个类,

2025-02-19 07:10:35
推荐回答(3个)
回答1:

我好像没看懂你说的题目的意思
但是我觉得如果你执行h=q
那么h原指的内存地址没了,然后指向了q,也就是h和q指向同一个内存地址
所以为了防止内存泄漏,先delete h,然后再h=q
可是按你所说的并没有错 我觉得应该是你表达的不清楚

回答2:

#include
#include
#include
typedef struct student{
int number;
char name[10];
int age;
}student;
void main()
{
student *a;
a=(student *)malloc(sizeof(student));
printf("number:");
scanf("%d", &a->number);
printf("name:");
scanf("%s", a->name);
printf("age:");
scanf("%d", &a->age);
free(a);
return;

}
scanf("%s", a->name)属于带参数的传递

#include
#include
#include
typedef struct student{
char number[10];
char name[10];
char age[10];
}student;
void main()
{
char b;
int i;
student *a;
a=(student *)malloc(sizeof(student));
memset(a, 0x00, sizeof(student));

printf("number:");
i = 0;
b = getchar();
while(b != '\n'){
a->number[i] = b;
i++;
b = getchar();
}

printf("name:");
i = 0;
b = getchar();
while(b != '\n'){
a->name[i] = b;
i++;
b = getchar();
}

printf("age:");
i = 0;
b = getchar();
while(b != '\n'){
a->age[i] = b;
i++;
b = getchar();
}
free(a);
return;

}
getchar()属于不带参数的传递

另外由于是指针结构体,所以后面加了free(a);把空间释放,所以想看结果就把断点停在free前
仅供参考

回答3:

应该是定义个“operator="成员函数