在函数中无法识别类的成员函数
Member function of a class isn't recognized in a function
我有一个clss学生,我在存储库的同一标头中使用了它的成员函数,没有问题...但是现在在这个函数中,我收到一个错误:
..StudentRepository.cpp:22:7: error: request for member 'setName' in 'st', which is of non-class type 'Student()'
这是函数:
void StudentRepository::loadStudents(){
ifstream fl;
fl.open("studs.txt");
Student st();
string s,ss;
int loc;
if(fl.is_open()){
while(!(fl.eof())){
getline(fl,s);
loc = s.find(",");
ss = s.substr(0,loc);
st.setName(ss);
}
}
else{
cout<<"~~~ File couldn't be open! ~~~"<<endl;
}
fl.close();
}
我必须提到,在同一个文件中,我确实使用了它们,例如这个函数:
void StudentRepository::editStudent(Student A){
int i;
i = findByName(A.getName());
if( i != 0 || i != NULL){
students[i].setGroup(A.getGroup());
students[i].setId(A.getID());
}
else{
throw RepoException("The name does not exist!");
}
saveStudents();
}
Student st();
应该是:
Student st;
Student st();
不会创建st
类型的对象,Student
它声明一个名为 st
的函数,该函数不带任何参数并返回一个Student
对象。
这有时在C++中被称为最令人烦恼的解析。
从st
的声明中删除括号。
Student st();
- 非工作演示
- 工作演示
相关文章:
- 如何使用指针传递给函数的数组中对象的函数成员
- c++构造函数成员初始化:传递参数
- 创建 std::函数,它返回具有函数成员值的变量.分段错误
- 如何在C++通过公共函数访问私有函数成员?
- 解释了构造函数成员初始化列表
- 调用std::函数成员时内存损坏
- 是否可以为模板类的模板函数成员设置别名?
- 捕获 lambda 函数C++成员变量
- 构造函数成员初始值设定项跨成员列出,安全吗?
- 获取与在模板参数中传递的函数成员类型相同的类
- 如何从公共函数成员访问地图私有成员
- C 构造函数成员分配优化
- 使用命名空间进行函数成员定义
- 函数成员作为 CUDA 内核的参数
- 模板基类函数成员的别名
- 函数成员中用于void和继承的enable_if
- 头文件中是否定义了一个很长的Class函数成员
- 类内/构造函数成员初始化
- 使用指向部分专用函数成员的指针自动填充向量
- 指向函数成员的指针