有关结构选择的模板错误
Template error regarding the choice of the structure
我的结构有问题...或类似的东西。我有 2 个数组,一个定义为 Array <Student> DBst
个,一个Array <Assignment> DBas
.事情在某个地方被错过了,因为我的一个函数(以模板形式)弹出了一个错误,因为它告诉我Class Assignment
没有函数setStudent(...)
但我不知道为什么它会将我结构DBst
读取为 Assigment 对象的集合。
域名.h:
template <class T>
void addStudent(int a, int b, std::string c,Array <T> &A){
A.M[a].setStudent(a,b,c);
cout<<"here";
}
控制器.h:
template <class T1>
void _addStudent(Array <T1> &A){
int a,b;
string c;
cout<<"Enter ID:"<<endl;
cin>>a;
cout<<"Enter Group:"<<endl;
cin>>b;
cout<<"Enter Name:"<<endl;
cin>>c;
addStudent(a,b,c,A);
}
菜单.cpp:
void Menu::mainMenu(Array <Student> &DBst,Array <Assignment> &DBas){
showMainMenu();
int ret = Menu::intInputHandler();
switch(ret){
case 1:studentMenu(DBst,DBas);break;
case 2:assignmentMenu(DBas,DBst);break;
case 3:statsMenu(DBst,DBas);break;
case 4:_printAll(DBst,DBas);break;
case 0:break;
default:cout<<"Wrong option selected!";break;
}
Menu::mainMenu(DBst,DBas);
void Menu::studentMenu(Array <Student> &DBst,Array <Assignment> &DBas){
showStudentMenu();
int ret = Menu::intInputHandler();
switch(ret){
case 1:_addStudent(DBst);break;
case 2:_removeStudent(DBst);break;
case 3:_editStudent(DBst);break;
case 4:_printStudent(DBst);break;
case 5:_printAllStud(DBst);break;
case 6:_searchByID(DBst);break;
case 0:mainMenu(DBst,DBas);break;
default:cout<<"Wrong option selected!";break;
}
Menu::studentMenu(DBst,DBas);
}
菜单.h:
class Menu{
public:
string stringInputHandler();
int intInputHandler();
void mainMenu(Array <Student> &,Array <Assignment> &);
void studentMenu(Array <Student> &,Array <Assignment> &);
void assignmentMenu(Array <Assignment> &,Array <Student> &);
void statsMenu(Array <Student> &,Array <Assignment> &);
};
学生.cpp:
void Student::setStudent(int a,int b,string c){
this->ID = a;
this->group = b;
this->name = c;
}
我得到的错误是休耕:
D:c++BeginLab6-8_UML/Domain.h:70:2: error: 'class Assignment'
has no member named 'setStudent'`
编辑:
template <class T>
struct Array{
int lenght;
T * M;
Array( int size ) : lenght(size), M(new T[size])
{
}
~Array()
{
delete[] M;
}
};
它在您
提供的代码中不可见,但我怀疑您正在使用Array<Assignment>
参数(最后一个)调用addStudent<T>
函数,并且Assignment
类没有setStudent
方法。
相关文章:
- C++选择排序算法中的逻辑错误
- 防止在C++中选择错误文件时提升 xml 解析器崩溃
- 选择文件对话框错误
- C++为什么我的指针选择排序中存在分段错误?
- 从加密项目向量中解密任意选择的元素会导致无效的 PKCS #7 块错误
- 当我选择大于 720 的矩阵大小时,程序退出并显示错误代码.可能是什么原因?
- C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板专用化
- 冲刺错误"variable may be unsafe" (C4996)...选择?
- 使用元编程选择 int 类型,将生成错误
- 如何修复列表视图中的错误?,封装控件时无法选择任何项
- 元数据操作失败LNK2022错误 (8013118D):重复类型中的布局信息不一致 (选择设备参数):(0x020002
- 为什么<iostream>运算符<<会选择明显错误的重载?
- 编译器选择错误的重载函数
- 如何允许用户在进行错误选择时再次输入
- 为什么日食总是发生错误"An internal error occurred during: "通知选择侦听器". java.lang.StackOverflowError"
- 为什么C 编译器选择错误的功能(模板)
- Meson选择了错误的编译器(GCC而不是在Clang上)
- lli:LLVM错误:无法选择:X86ISD::WrapperRIP TargetGlobalTLSA地址:i64
- 命名管道,选择错误的文件描述符C++
- 服务器端错误选择在s.cpp中重复