类到模板错误:非静态数据成员的无效使用
Class to template error: invalid use of non-static data member
第一个问题,我希望这是个好问题。我有两个类,其中有几个模板实例。一个(分数)是另一个(学生)的朋友,但是当我试图访问另一个班的模板时,我得到了这个美妙的g++错误:
error: invalid use of non-static data member '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;
};
tables.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
的实例,然后只有您可以访问非静态成员。
相关文章:
- 错误: 无效使用非静态数据成员"应用程序::应用程序构造函数"
- 当使用嵌套类功能时,使用非静态数据成员的使用无效,但是当函数未固定时可以
- 使用矢量指标对非静态数据成员的使用无效
- 非静态数据成员错误的使用无效
- 错误:非静态类数据成员的使用无效
- 在结构中访问数组时无效使用非静态数据成员
- 错误:非静态数据成员的使用无效,在此范围内未声明变量
- 使用const变量时,非静态数据成员的使用无效
- 非静态数据成员c++的使用无效
- 在迭代向量的 for 循环中无效使用非静态数据成员
- 错误:无效使用非静态数据成员"容量"int data[容量];
- Clang:错误:非静态数据成员的使用无效
- 错误:在 C++ 中无效使用非静态数据成员'NNetwork::NH'(也适用于 NH 和 NI)
- C++对非静态数据成员的使用无效
- 错误:非整型 'const char[]' 的静态数据成员的类内初始化无效
- Arduino错误(C++):非静态数据成员的使用无效
- C++ 无效使用非静态数据成员
- Cpp.中的私有静态数据成员只能在其定义时初始化,而类内初始化无效
- C++ 无效使用非静态数据成员
- 非静态数据成员的使用无效