我是C++的新手(更多的是java人)。我正在尝试自我介绍C++指针。在这里我创建了两个类,Person
(基类)和Student
(派生类)。C++传递指向模板类的函数
我试图把Student
对象放在unordered_map<string, Person>
中。但遇到了一个错误。
这是我的代码:
class Person
{
protected:
string name;
int age;
public:
int getAge()
{
return age;
}
string getName()
{
return name;
}
};
class Student : public Person
{
private:
string grade;
public:
Student(string const &name, int const &age, string const &grade)
{
this -> name = name;
this -> age = age;
this -> grade = grade;
}
int getAge();
};
这是我的主要功能:
int main()
{
unordered_map<string, Person *> students;
Student s("Sam", 26, "A");
Person *p;
p = &s;
students.insert(p -> getName(), p);
return 0;
}
这仅仅是一个代码的一部分,我知道它看起来愚蠢的。但我只是了解指针
我已包括<iostream>
和<unordered_map>
库和使用namespace std
在这里。
错误消息太长了。有人能指出我在这里所犯的错误吗?或者,我是否应该发布那个长的错误信息呢? 在此先感谢。
你可以使用students.insert({p - > getName(),p}); – user1438832
*“错误消息太长了。”*答案是*“太大而不能放在边距中”* :-) – Jarod42
但是,我的代码有什么问题? –