为啥我得到表达式必须有类类型错误? [复制]
Posted
技术标签:
【中文标题】为啥我得到表达式必须有类类型错误? [复制]【英文标题】:Why am I getting expression must have class type error? [duplicate]为什么我得到表达式必须有类类型错误? [复制] 【发布时间】:2019-10-12 17:00:30 【问题描述】:我试图运行这个简单的代码块,但出现错误:表达式必须具有tom.name
和tom.id
的类类型。我在这里做错了什么?
#include <iostream>
#include <string>
using namespace std;
class Student
string name;
int id;
int age;
;
int main()
Student* tom = new Student;
tom.name = "tom";
tom.id = 1;
【问题讨论】:
你没有包含字符串的标题Student tom;
或 tom->name
, tom->id
。
【参考方案1】:
您错误地访问了指针。从指针访问内部变量需要->
而不是.
运算符。
切换你的代码:
Student* student_ptr = new Student;
student_ptr->name = "Tom";
student_ptr->id = 1;
或者,如果您真的想要使用.
运算符,您可以这样做:
Student* student_ptr = new Student;
(*student_ptr).name = "Tom";
(*student_ptr).id = 1; // the more you know
【讨论】:
以上是关于为啥我得到表达式必须有类类型错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我必须在 Java 正则表达式中指定整个字符串? [复制]
为啥我得到 Typeerror 超级表达式必须为 null 或函数?