C++中存在一种朋友关系,这种朋友关系如果体现在函数上,那么我们就称之为友元函数;如果体现在类上,我们就称之为友元类。 1.友元函数 友元函数是指某些虽然不是类成员函数却能够访问类的所有成员的函数。类授予它的友元特别的访问权,这样该友元函数就能访问到类中的所有成员。 1 #include <iost ...
分类:
编程语言 时间:
2020-03-20 23:54:31
阅读次数:
143
1.友元函数 定义:在C++中,一个普通函数是不可以直接访问类中的任意成员的,但是如果把这个函数声明为友元函数,那么这个函数就可以访问类中的所有成员。 优点:能够不受限制地访问类中的任意成员,在一定程度上可以提高程序的执行效率。 缺点:打破类的封装性。 声明格式:friend 返回值数据类型 函数名 ...
分类:
其他好文 时间:
2020-03-20 12:54:08
阅读次数:
64
friend(友元)可以干什么 修饰对象之一:类 假如B是A的友元,B的成员函数可以访问A的 所有成员 ,包括protect和private成员变量和成员函数,示例: class A { friend class B }; 修饰对象之二:普通函数 普通函数F是A的友元函数,则这个普通函数可以访问A的 ...
分类:
其他好文 时间:
2020-03-06 21:53:07
阅读次数:
91
C++友元函数 今天学到一个特别有意思的东西,甚至是C++独有的东西,叫做 友元函数 。类的友元函数是定义在类外部,但有权访问类的所有 私有(private) 成员和 保护(protected) 成员。尽管友元函数的原型有在类的定义中出现过, 但是友元函数并不是成员函数。 友元可以是一个函数,该函数 ...
分类:
编程语言 时间:
2020-02-11 22:00:50
阅读次数:
80
优先队列:结构体的优先级设置 因为优先队列本质是堆 struct node{ string name; int pri; friend bool operator < (node f1,node f2){ return f1.pri<f2.pri; //友元函数,写在结构体里面的,意思时价格大的优先 ...
分类:
其他好文 时间:
2020-02-05 18:06:01
阅读次数:
76
mooc西工大魏英老师的课程通道关闭了,难受。现在边看工程代码边重温刷第一遍C++时候的知识点,顺序没有按照大纲的来,想到哪写到哪。 this是干啥用的? 简介:在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用 ...
分类:
编程语言 时间:
2020-01-07 13:15:53
阅读次数:
117
函数定义期望 通过cout<<对象,打印出复数的实部和虚部,这样一来,就需要重载cout类的位移<<运算函数,但是我们并不能拿到cout源码,在visual studio我们看到的也仅仅是他的定义 若想访问c1的私有属性,则应当声明为友元函数 通过定义可以看出cout类的返回值是ostream类型的 ...
分类:
编程语言 时间:
2019-12-15 16:48:27
阅读次数:
242
C++运算符重载总结(真的很详细了w(?Д?)w) 概述 运算符重载可以使得一些特殊类型参与运算,我是这样理解的。 使用友元形式的运算符重载 双目运算符 所以加减乘除就可以这样来进行声明了 单目运算符 如 等。下面以 来进行一个示例: 总结: 1. 运算符重载可以返回任何类型,甚至是 类型,但是通常 ...
分类:
编程语言 时间:
2019-12-07 21:33:53
阅读次数:
126
友元函数: 测试: cpp include include / 友元函数 / using namespace std; class Match; class Time { friend Match;//友元类的声明 public: Time(int hour, int min, int sec); ...
分类:
编程语言 时间:
2019-11-16 23:05:17
阅读次数:
58
多态和重载 一:多态 1:定义:多态是指同样的消息被不同类型的对象接收时导致的不同行为。 消息是指对类的成员函数的调用。不同行为是指不同的实现,即调用了不同的函数。 2:多态的类型: 1:专用多态 : ? 1:重载多态 ? 2:强制多态 2:通用多态: ? 3:包含多态 ? 4:参数多态 3:多态的 ...
分类:
其他好文 时间:
2019-10-27 14:25:31
阅读次数:
91