C++ 为什么没有正确调用我的函数?
我只是使用继承来编写一个程序,并尝试调用在派生类中创建的函数。当我运行我的代码“标识符”搜索过程“未定义”时,我收到这个错误,“SeaChurChar”在这个范围内没有被声明“我知道这是你在C++中调用一个函数的原因,我被卡住了。感谢您的帮助C++ 为什么没有正确调用我的函数?,c++,C++,我只是使用继承来编写一个程序,并尝试调用在派生类中创建的函数。当我运行我的代码“标识符”搜索过程“未定义”时,我收到这个错误,“SeaChurChar”在这个范围内没有被声明“我知道这是你在C++中调用一个函数的原因,我被卡住了。感谢您的帮助 #include <iostream> using namespace std; class User { protected: string firstName; string lastName; string id
#include <iostream>
using namespace std;
class User
{
protected:
string firstName;
string lastName;
string idNumber; //attributes for user class
public:
virtual void print()
{
cout << firstName + lastName << "has ID number " << idNumber << ".\n"; //virtual function to print all info about user
}
User(string name1, string name2, string ID) //constructor for base class when user is created
{
firstName = name1;
lastName = name2;
idNumber = ID;
}
~User() {}
string getFirst() { return firstName; }
string getLast() { return lastName; }
string getID() { return idNumber; }
};
class Student : public User
{
protected:
public:
Student(string name1, string name2, string ID) :User(name1, name2, ID) {}
~Student(){}
void searchCourse()
{
User::print();
cout << "Searching Courses";
}
void addDrop()
{
User::print();
cout << "Add Dropping courses";
}
void printSchedule()
{
User::print();
cout << "Printing Schedule";
}
};
class Instructor : public User
{
protected:
public:
Instructor(string name1, string name2, string ID) :User(name1, name2, ID) {}
~Instructor(){}
void printSchedule()
{
User::print();
cout << "Printing Schedule";
}
void printRoster()
{
User::print();
cout << "Printing Class List";
}
void classSearch()
{
User::print();
cout << "searching for course";
}
};
class Admin : public User
{
protected:
public:
Admin(string name1, string name2, string ID) :User(name1, name2, ID) {}
~Admin(){}
void addCourse()
{
User::print();
cout << "Adding Course";
}
void removeCourse()
{
User::print();
cout << "Removing Course";
}
void addRemoveUser()
{
User::print();
cout << "Adding/Removing user";
}
void addRemoveStudent()
{
User::print();
cout << "Adding/Removing Student from Course";
}
void SearchPrint()
{
User::print();
cout << "Searching and Printing";
}
};
int main()
{
searchCourse();
}
#包括
使用名称空间std;
类用户
{
受保护的:
字符串名;
字符串lastName;
string idNumber;//用户类的属性
公众:
虚拟空打印()
{
cout您需要创建student对象并从中调用函数
Student*s=新学生(“,”,“);
s->searchCourse();
searchCourse()
是Student
类的public
成员。您必须创建Student
类的对象并调用searchCourse()
使用该对象。我让它创建了一个student对象,但现在它说searchCourse未在此范围内声明1)您忘记了#include
。2)用户
类应该有一个虚拟
析构函数。我仍然得到相同的错误,即searchCourse未在此范围内声明。您可以粘贴完整的e吗rror@VinayakSinglaStudent*s=new Student(“,”“,”);
——完全不需要使用new
。您无缘无故地调用分配器,而且您的代码现在可能会出现内存泄漏。只需要一个简单的Student(“,”“,”);s.searchCourse();
。@Paulmckenzie明白了