【发布时间】:2018-11-21 10:26:14
【问题描述】:
我有一个 Parent 类和一个 Child 类。 Parent 有一个名为 setId(int id) 的受保护函数。现在我想让 Child 的朋友类可以访问 setId 函数(我们称之为 Friend)。这是可能的还是我必须在 Child 类中重新实现 setId 函数并使用 parent 的受保护的 setId 函数?
我已经用 VS-Compiler 试过了,它可以工作。
我使用 gcc 并得到“错误:'void Parent::setId(int)' is protected”
班级家长
class Parent
{
public:
Parent(){}
protected:
void setId(int id){m_id=i}
int m_id;
};
班级孩子
#include "Parent.h"
class Child
: public Parent
{
friend class FriendClass;
public:
Child(){}
};
班友
#include "Child.h"
class FriendClass
{
public:
FriendClass(){
Child c;
c.setId(1);
}
};
【问题讨论】:
-
请不要描述代码,而是显示给我们。最好采用Minimal, Complete, and Verifiable Example 的形式。
-
我还在哭,抱歉。现在代码在线;)
-
ManInTheMiddle 是谁?
-
Opps :) 如果改变它
标签: c++ visual-studio inheritance gcc friend