C++:用户定义的类,以成员字段作为地址
C++ : User defined class with a member field as an address
如果我有一个用户定义的类,请说
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 访问该值。看看聪明的指针,祝你好运。
相关文章:
- C++:用户定义的类,以成员字段作为地址
- 用于基于成员字段或函数创建比较器的快捷方式
- 无法初始化以 std::byte 作为成员类型的位字段
- 与位字段的并集为位字段成员提供了意外值
- 依赖注入:依赖关系需求字段/成员
- uninit_member:非静态类成员字段 m_cJobState.bstatus 未在此构造函数中初始化,也不在其调
- 派生类中的成员字段别名(无访问器功能)
- 使用静态类成员而不是私有字段之间的速度差异是什么?
- 如何使用 Clang 查找所有成员字段读/写?
- 位字段成员的类型
- 无法汇总初始化类型结构的变量,其中包含在类模板中的位字段成员
- C 模板功能在任何集合成员字段上迭代
- 一次启用 MANY 类的成员字段,具体取决于模板<T>
- 导致IAR ARM中出现错误的成员结构位字段元素的Initializer列表初始化
- 如何在C++的专用模板类中访问模板类成员字段
- 动态链接到 c++ 静态成员字段时符号查找失败
- std :: async在成员字段的成员功能上
- C :初始化成员结构的静态字段的正确方法
- 位字段成员的大小
- 如何为具有位字段成员的类专门化“swap”