C++:用户定义的类,以成员字段作为地址

C++ : User defined class with a member field as an address

本文关键字:字段 成员 地址 用户 定义 C++      更新时间:2023-10-16

如果我有一个用户定义的类,请说

class Student {
public:
string name;
int *grade;
Student (string a, int b);
}; //Student header

我通过编写学生 t("sam",96( 来创建它的实例(当然是在定义构造函数之后(; 如果 96 分配给成绩成员字段,我以后如何访问成绩?T.grade只会给我地址,T->GRADE不会编译。

谢谢!

这应该有效:

int x = *(t.grade);

由于您没有定义方法,这解释了为什么要使用指针进行评分,因此可能不是故意的。

所以解决方案是:

class Student {
public:
string name;
int grade;
Student (string a, int b){
name = a;
grade = b;
}
}

t 不是指针,因此它不能用作指针运算符 (->( 成员的 l 值。我建议这种类型的实例化:

学生* t = 新生("山姆",96(; t->(班级学生的任何公众成员(;

如果您只是将简单类型 int 设置为指针,那么您将能够像 t->grade 一样从 t 访问该值。看看聪明的指针,祝你好运。