当前位置: 首页 > news >正文

c++ 友元函数

测试友元函数。

头文件TestCls1.h:

#pragma once
#include <cstdint>using UINT32 = uint32_t; // 别名// 测试友元函数
class TestCls1
{private:int x, y;public:void setX(UINT32 x);void setY(UINT32 y);friend void printTestCls1(const TestCls1& v); // 友元函数声明
};// 需单独声明函数(可放在头文件中)
void printTestCls1(const TestCls1& v); // 实际函数声明,不能缺少,否则外部文件不知道这个函数

源文件TestCls1.cpp:

#include "TestCls1.h"
#include <iostream>void printTestCls1(const TestCls1& testCls) {  // 友元函数的定义std::cout << testCls.x << ", " << testCls.y; // 可访问类的私有成员
}void TestCls1::setX(UINT32 x)
{this->x = x;
}void TestCls1::setY(UINT32 y)
{this->y = y;
}

测试代码:

#include "TestCls1.h"void testFriendFunc() {TestCls1 testCls1;testCls1.setX(9527);testCls1.setY(1314520);printTestCls1(testCls1);
}

打印:

注意:友元函数不是类的成员函数,所以没有this指针。友元函数可以访问类的所有成员,包含私有和受保护成员。

http://www.xdnf.cn/news/507097.html

相关文章:

  • STM32入门笔记(06):STM32Cube 生态系统 (STM32CubeMX图形工具STM32CubeIDE 集成开发环境)(HAL库)
  • W5500使用ioLibrary库创建DHCP客户端
  • Day12-苍穹外卖(完结篇)
  • Typecho博客为文章添加AI摘要功能(Handsome主题优化版)
  • 江协科技OLED移植hal库
  • 院校机试刷题第五天:1912循环位移、1913礼炮车
  • CE17.【C++ Cont】练习题组17(堆专题)
  • 基于C++11CAS实现无锁队列
  • 【IP101】图像“瘦身魔法“详解:从基础细化到Zhang-Suen、Hilditch算法与中轴变换的完整代码实现
  • 剖析智能指针shared_ptr实现原理
  • Devin 编程智能体
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-专科组(国赛)解题报告 | 珂学家
  • Active Directory域环境信息收集实战指南
  • 摄影构图小节
  • [逆向工程]C++实现DLL注入:原理、实现与防御全解析(二十五)
  • Flowbite 和 daisyUI 那个好用?
  • AI Agent开发第69课-彻底消除RAG知识库幻觉(3)-手撕“重排序”
  • W5500使用ioLibrary库创建DNS客户端
  • 【人工智能】DeepSeek解码:揭秘AI大模型训练的创新密码
  • 从0到1:Python项目部署与运维全攻略(10/10)
  • 如何在Cursor中高效使用MCP协议
  • 桌面端进程通信
  • 第十一课 蜗牛爬树
  • 恢复因 oh-my-zsh 安装导致丢失的 zsh 环境变量
  • 【Docker 新手入门指南】第五章:Hello Word
  • JavaScript运算符
  • 人工智能-自然语言与语音产品实现
  • SpringBoot--自动配置原理详解
  • 2025.05.17淘天机考笔试真题第二题
  • vue使用axios实现拦截器