首页 > 编程语言 >C++走向远洋——34(友元函数,成员函数和一般函数的区别)

C++走向远洋——34(友元函数,成员函数和一般函数的区别)

时间:2022-11-16 20:31:43浏览次数:42  
标签:友元 函数 hour int 成员 C++ Time


*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:youyuan.cpp
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年4月10日
* 版本号:V1.0
* 问题描述:成员函数,友元函数和一般函数的区别
* 程序输入:无
* 程序输出:见运行结果
*/

#include <iostream>
using namespace std;
class Time
{
public:
Time(int h,int m,int s):hour(h),minute(m),sec(s) {}
void display1(); //display1是成员函数
friend void display2(Time &); //display2是友元函数
int getHour(){return hour;}
int getMinute(){return minute;}
int getSec(){return sec;}
private:
int hour;
int minute;
int sec;
};
void Time::display1() //成员函数display1的实现,dispaly1前加Time::
{
//以hour形式直接访问私有数据成员,实质是this->hour形式
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
void display2(Time &t) //友元函数dispaly2的实现,不加Time::,友元并不是类的成员
{
//虽然不是类的成员函数,却可以用t.hour的形式直接访问私有数据成员——这就是友元
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
void display3(Time &t) //display3是一般函数,dispaly3前不加Time::
{
//不能直接访问,只能用公共接口t.getHour()形式访问私有数据成员
cout<<t.getHour()<<":"<<t.getMinute()<<":"<<t.getSec()<<endl;
}
int main()
{
Time t1(10,13,56);
t1.display1(); //成员函数这样调用:对象名.函数名()
display2(t1); //友员函数的调用和一般函数无异(但实现中可以不同)
display3(t1); //一般函数的调用
return 0;
}

C++走向远洋——34(友元函数,成员函数和一般函数的区别)_成员函数

心得:

     无

标签:友元,函数,hour,int,成员,C++,Time
From: https://blog.51cto.com/u_15311571/5857584

相关文章

  • windows--cmake与c++的使用教程(8)
    1概述本文基于前文环境本节目标:基于VSCode,使用CMakeTools插件命令调试程序通过前面可以得知,CMakeTools的其他常用命令已经介绍过了,下面介绍CMake:debug命令......
  • 内联函数inline
    先说自己的理解:内联函数就是函数形式的宏定义使用#define宏定义时,语句的规范并没有得到及时调试,有时候错在哪里都不知道,当宏定义的行数多了起来时,这种影响更加显著,所以采......
  • postgresql函数:定期删除模式下指定天数前的表数据及分区物理表
    一、现有函数--1、现有函数调用selectods.deletePartitionIfExists('fact_ship'||'_'||to_char(CURRENT_DATE-INTERVAL'2month','yyyymmdd'));--2、函数内容CREAT......
  • c++中的分配子allocator的注意点
    stl中说所有属于同一种类型的分配子对象都是等价的这也就是说由同一分配子所分配出的对象可以被视为拥有相同的内存结构而可以被同一个析构函数所销毁这意味着自己定义的......
  • VBA变量和函数名拼音输入提示
    VBA代码助手下载地址全球首发!VBA变量和函数名拼音输入提示!一直想做这个功能,从构想到实现,遇到了太多困难,不过随着代码行号研发过程中,我的个人技术得到极大提升,这个一直......
  • [oeasy]python0015_十六进制_hexadecimal_字节形态_hex函数
    十六进制(hexadecimal)回忆上次内容上次数制可以转化bin(n)可以把数字转化为​​2进制​​binary接收一个整数(int)得到一个二进制数形式的字符串数字在计算机中是用二进......
  • CSP 202206-1 归一化处理 C++
    1#include<iostream>2#include<vector>3#include<math.h>45intmain(){6intx{},sum{};7std::cin>>x;8std::vector<int>n(x,0);......
  • 函数计算|如何使用层解决依赖包问题?
    作者:落泥在使用阿里云函数计算平台时,如果您曾经遇到过以下问题,本文应该会对您有所帮助:第三方依赖包太大,每次更新代码都非常耗时,甚至会出现超过代码包限制的情况,我该怎......
  • 虚函数详解
    1定义定义:在某​​基类​​​中声明为virtual并在一个或多个​​​派生类​​​中被重新定义的​​​成员函数​​[1]语法:virtual函数返回类型函数名(......
  • 博弈论练习4 Calendar Game(SG函数)
    题目链接在这里:D-CalendarGame_牛客竞赛博弈专题班组合游戏基本概念、对抗搜索、Bash游戏、Nim游戏习题(nowcoder.com)这题网上有关于奇偶性来找规律的做法,有点人类智慧......