【发布时间】:2021-11-02 14:46:48
【问题描述】:
这可能是一个微不足道的问题。有以下代码,
class message {
public:
virtual void setMessage(const string& name, const int& age, const string& title) const;
virtual void getMessage(const string& name) const;
private:
void removeMessage(const string& name);
};
class test : public message {
public:
using message::removeMessage;
};
int main()
{
test t;
t.removeMessage("_");
while (1);
return 0;
}
试图将 removeMessage() 公开为测试类的公共方法。但这给出了错误,
错误 C2876:“消息”:并非所有重载都可访问
如何将基类中的私有方法公开为派生类中的公共方法?
【问题讨论】:
-
private暗示“无法从派生类访问”。你是不是想实现这个功能protected? -
@DrewDormann - 您可以将其添加为答案,我会接受。
-
我认为现有的答案已经做得很好了。
标签: c++