美文网首页
友元函数

友元函数

作者: 不惜留恋_ | 来源:发表于2020-05-18 16:55 被阅读0次

为了让一个与类无关的函数能访问类的私有数据,可以让这个方法成为类的友元函数。

如何创建友元函数

在类中,只需在这个函数原型前面加上friend关键字,而不需要在定义中加上friend。

使用友元函数

由于友元函数不是类的成员函数,因此

  1. 不能使用点号调用,而是直接使用函数即可。
  2. 定义时也不需要加上类名和作用域限制符。
class Person
{
    private:
        std::string mName;
        int mAge;

    public:
        Person();
        Person(const std::string & name, int age);
        ~Person();
        // 原型中加上friend定义为友元函数,这样ostream类可以访问Person内部数据
        friend std::ostream & operator<<(std::ostream & os, const Person & p);
};

// 友元函数的定义不需要friend关键字
std::ostream & operator<<(std::ostream & os, const Person & p)
{
    os << "Name: " << p.mName << ", Age: " << p.mAge;
    return os;
}

int main()
{
    Person p("david", 19);
    std::cout << p << std::endl;
    return 0;
}

相关文章

  • 第十一章 使用类(2)友元

    (二)友元 1.友元的概念 友元有三种:友元函数,友元类,友元成员函数。这里主要介绍友元函数。通过让函数成为类的...

  • C++入门10 -- 友元,内部类,运算符重载

    友元 友元包含友元函数和友元类; 若将函数A(非成员函数)声明为类C的友元函数,那么函数A就能直接访问类C对象的所...

  • C++ 友元,内部类,运算符重载

    友元 友元包括友元函数和友元类 如果将函数A(非成员函数)声明为类C的友元函数,那么函数A就能直接访问类C对象的所...

  • 友员函数

    友元函数分为友元全局函数和友元成员函数先看友元全局函数:定义一个Time类 在main函数中,定义一个打印时间的函...

  • C++语言基础(03)

    1.内存分配 C/C++ 内存分区: java 创建对象 2.常函数 3.友元函数和友元类 友元函数 友元类 4....

  • 友元类及友元函数

    简单介绍一下友元类和友元函数: 声明友元方式:将其他外部函数或其他类中的成员函数声明为一个类的友元函数。 作用:通...

  • 友元类和嵌套类

    友元类 友元函数用于类的扩展接口中,类并非只能拥有友元函数,也可以将类作为友元,该类称为友元类。 友元类的所有方法...

  • C++类中的友元函数[1]

    简介 本文要解决的两个问题: 什么是友元函数? 如何定义友元函数? 什么是友元函数 类中的成员变量及成员函数有公有...

  • 友元函数/友元类

    引入 当某一类或函数需要访问或使用另一类的私有函数或变量时,引入友元。例如:你的银行卡号是私有的,别人不能访问,但...

  • 第六章:静态成员与友元

    静态成员变量 这里面要回顾一下构造函数和析构函数?自己理解不是太深刻啊 友元:声明函数 友元:声明类 友元:声明类...

网友评论

      本文标题:友元函数

      本文链接:https://www.haomeiwen.com/subject/bfqpohtx.html