【发布时间】:2012-10-14 23:08:45
【问题描述】:
我是一名 CS 学生,现在我们正在学习继承。对于我们的作业,老师给了我们一个 main.cpp 文件和一个班级标题。我们希望在不更改给定文件的情况下创建标头的 .cpp 实现。我已经完成了大部分,但这是我无法实现的:
// File: employee.h
class Employee : public Person
{
private:
static Company company;
public:
static Company GetCompany();
static void SetCompany(const Company& company);
}
这是我无法使用的 [static void SetCompany]。通常在实现中我会这样做
// File: employee.cpp
void Employee::SetCompany(const Company& company) { this->company = company; }
但我收到错误“'this' 只能在非静态成员函数中使用”。我不确定我应该如何分配该变量,并且从未在课堂上解决过它。任何帮助,将不胜感激。请注意,这几乎是我希望保留的格式,所以希望任何建议都不会偏离太多。无论如何,提前谢谢,如果有什么需要澄清的,请告诉我......或者我只是对此感到盲目和/或愚蠢。
【问题讨论】:
-
你的老师从来没有提到静态成员可以用他们的全名来称呼,在这种情况下是 Company::company?这真是一个疏忽。
-
抱歉,我在原帖中打错字了。它应该是 Employee::SetCompany,而不是 Company::Company。我仍然不确定我应该如何使用它。是的,我的老师倾向于在没有任何真正解释的情况下匆忙通过幻灯片上的伪代码。无论如何,感谢您的快速响应。
标签: c++ inheritance implementation static-methods