朋友功能和实现

拉杰什瓦尔

我遇到了以下代码

class ExDer1 : public ExBase
{
public:
    friend int Der1Fn()
    {
        ....
    }
};

我在这里有点困惑

        friend int Der1Fn()
        {
            //This has an implementation .Why is it a friend then ? since it can access the private/protected variables of the ExDer1  class ?
        }

通常我希望看到类似以下的内容

friend int Der1Fn(); //No implementation. Indicating that the Der1Fn is a method outside this class

这基本上意味着函数int Der1Fn()将访问类ExDer1的私有变量。但是,这有一个实现。有人可以解释一下这是什么意思吗?

更新:

所以如果我有以下代码

class ExDer1 : public ExBase
{
public:
    friend int Der1Fn()
    {
        std::cout << "Hello World";
    }
};

int main()
{
    Der1Fn(); // error C3767: 'Der1Fn': candidate function(s) not accessible
    //.....
}

我怎么称呼Der1Fn?

4个

朋友函数(或类)也可以在类外部或内部定义。如果在内部定义它,则应在正确的范围内提供匹配的声明,否则将进行依赖于参数的查找。

以下示例在逻辑上是相同的:

范例1:

int Der1Fn();

class ExDer1 : public ExBase
{
public:
    friend int Der1Fn()
    {
        ....
    }
};

示例2(推荐):

int Der1Fn()
{
    ....
}

class ExDer1 : public ExBase
{
public:
    friend int Der1Fn();
};

我怎么称呼Der1Fn?

由于笑着因为这个

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

朋友功能和复制构造函数

来自分类Dev

朋友功能和类别的定义

来自分类Dev

运算符<<朋友功能和模板

来自分类Dev

朋友和非成员功能困境

来自分类Dev

转发声明和朋友功能

来自分类Dev

用户和朋友使用Firebase(AngularFire)进行设计和实现

来自分类Dev

模板对象的模板朋友功能和名称空间

来自分类Dev

继承和朋友功能,从基类访问受保护的成员

来自分类Dev

使用类和朋友功能的链表:分段错误

来自分类Dev

朋友功能和声明

来自分类Dev

朋友功能-声明顺序

来自分类Dev

朋友功能的单独声明

来自分类Dev

我对朋友功能的理解

来自分类Dev

被通缉的朋友功能包括

来自分类Dev

朋友功能如何运作

来自分类Dev

朋友功能C ++

来自分类Dev

朋友功能内部代码

来自分类Dev

C ++自动实现的功能和ODR

来自分类Dev

实现遍历和折叠的多态“深度”功能

来自分类Dev

了解实现foldr和foldl的功能

来自分类Dev

使用map和foldr,haskell实现功能

来自分类Dev

接口实现和通用功能

来自分类Dev

实现遍历和折叠的多态“深度”功能

来自分类Dev

如何编写和实现自己的功能

来自分类Dev

在 spring 和 HQL 中实现搜索功能

来自分类Dev

实现和如果在减少功能

来自分类Dev

类中定义的朋友功能模板可用于查找吗?clang ++和g ++意见不同

来自分类Dev

一班朋友的功能

来自分类Dev

clang / g ++与朋友功能的区别