我对 C++ 很陌生,而且我总是在这里和那里遇到一些小事情。最近的似乎是结构的问题。
struct student_record{
student_record(std::string name, int ident, double gpa){
for (int i = 0; i < name.length(); i++){
student_name[i] = name[i];
student_name[i + 1] = NULL;
}
student_ident = ident;
student_gpa = gpa;
}
//constructor to initialize student_record
static const unsigned int MAX_NAME_LENGTH = 21;
char student_name[MAX_NAME_LENGTH];
int student_ident = 1234;
double student_gpa = 4.0;
};
我想使用我的函数“print_student”打印出这个学生的名字
void print_student(const student_record record){
std::cout << "Student name: ";
std::cout << record.student_name.c_str();
std::cout << std::endl;
std::cout << " Student ID: " << record.student_ident << std::endl;
std::cout << " GPA: " << record.student_gpa << std::endl;
}
我收到错误“Intellisense:表达式必须具有类类型”编译器错误说“.c_str 的左侧必须具有类/结构/联合”。“记录”在函数的第 3 行中带有红色下划线并给出了错误。
我在这里迷路了。我尝试使用非常完整的范围名称和所有内容,但它一直给出相同的错误。我不确定发生了什么,错误似乎非常......模糊。