gpt4 book ai didi

c++ - 类到模板错误 : invalid use of non-static data member

转载 作者:行者123 更新时间:2023-11-28 07:00:23 26 4
gpt4 key购买 nike

这里是第一个问题,所以我希望这是一个很好的问题。我有两个类,其中有几个模板实例。一个(成绩)是另一个(学生)的 friend ,但是当我尝试访问另一个类(class)的模板之一时,我得到了这个奇妙的 g++ 错误:

错误:无效使用非静态数据成员“grades_table::term”

这是几个中的第一个。我在这里看到了几个以同样的方式提出的问题,但是在浏览它们的过程中,我无法弄清楚如何将这些信息应用到我的问题中。这是所有相关代码。

table_frame.h

class grades_table{

friend class students_table;
public:

grades_table();
int insert(int& temp_student_ID, std::string& temp_term,
int& temp_year, char& temp_grade);
void print(int select_cell = 0);
void select(std::string& attribute, std::string& identifier);

private:
int row_number;
table_column<int> student_ID;
table_column<std::string> term;
table_column<int> year;
table_column<char> grade;
};

表格.cpp

void students_table::print(bool join_id, int select_cell){
int column_stop;


column_stop = student_ID.column_depth();
row_number = 1;

if(select_cell != 0){
cout << "(" << student_ID.print(select_cell) << ",";
cout << first_name.print(select_cell) << ",";
cout << last_name.print(select_cell) << ")";
}
else if(join_id){
while(row_number <= column_stop){
//Keep it clean
if(row_number % 2 == 0){
cout << "\n";
}
cout << "(" << student_ID.print(row_number) << ",";
cout << first_name.print(row_number) << ",";
cout << last_name.print(row_number) << ",";
cout << grades::term.print(row_number) << ","; <<-----ERROR
cout << grades::year.print(row_number) << ","; <<-----ERROR
cout << grades::grade.print(row_number) << ")";<<-----ERROR
...

非常感谢任何帮助。

编辑

好的,所以我将“grades_table”更改为我创建的名为“grades”的实例。但是现在它告诉我它还没有被宣布。这是主要文件:

database_control.cpp

#include "table_frame.h"

using namespace std;

void input_output();
void database_actions(const string& command, const string& arguments);
void split(const string &s, char delim, int start, string& argument);

grades_table grades;
students_table students;
bool PROGRAM_EXIT = false;

...

最佳答案

您的编译器是正确的。您应该创建 grades_table 的实例,然后只有您可以访问非静态成员。 我在你的类中看不到任何静态成员。

关于c++ - 类到模板错误 : invalid use of non-static data member,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22586763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com