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
先看这样一个例子: #include<iostream> using namespace std; class A; class B { private: int x; void print() { cout<<x<<endl; } public: B(int i = 0) { x = i; } f ...
分类:
编程语言 时间:
2020-03-06 17:14:47
阅读次数:
98
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
//关于友元:可以自由取得friend中private成员 //相同class的各object互为友元 #include <iostream> using namespace std; class complex{ public: complex(int r=0,int i=0) :re(r),im ...
分类:
其他好文 时间:
2020-01-29 12:51:32
阅读次数:
74
【1】C++98的friend 参见很久以前的随笔《友元》 【2】C++11扩展的friend 直接用代码说明,示例如下: 1 class Poly; 2 typedef Poly P; 3 4 class LiLei 5 { 6 friend class Poly; // C++98通过, C++ ...
分类:
编程语言 时间:
2020-01-23 09:34:18
阅读次数:
87
mooc西工大魏英老师的课程通道关闭了,难受。现在边看工程代码边重温刷第一遍C++时候的知识点,顺序没有按照大纲的来,想到哪写到哪。 this是干啥用的? 简介:在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用 ...
分类:
编程语言 时间:
2020-01-07 13:15:53
阅读次数:
117
C++ 类和标准库 1. 类中的this指针:成员函数通过一个名为this的额外隐式参数来访问调用它的对象,当调用一个成员函数时,实际是用该函数的对象地址初始化this,this是一个常量指针总是指向当前对象。 2. const成员函数:this的类型是指向类类型非常量版本的常量指针,eg:Sale ...
分类:
编程语言 时间:
2019-12-27 00:08:35
阅读次数:
95