一、为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。要理解这 ...
分类:
编程语言 时间:
2018-06-14 11:24:27
阅读次数:
191
友元函数 默认一个类的私有属性只能在该类的内部可以直接访问。 c++ class A1 { public: A1() { a1 = 100; a2 = 200; } int getA1() { return this a1; } //声明一个友元函数 friend void setA1(A1 p, ...
分类:
编程语言 时间:
2018-06-01 13:37:00
阅读次数:
222
今天我们来介绍下一个新概念:友元。那么什么是友元呢?友元是 C++ 中的一种关系,它发生在函数与类之间或者类与类之间。友元关系是单向的,不能传递。下来我们来介绍下友元的用法:a> 在类中以 friend 关键字声明友元;b> 类的友元可以是其他类或者具体函数;c> 友元不是类的一部分,友元不受类中访问级别的限制;d> 友元可以直接访问具体类的所有成员。在类中用 friend 关键字对函数或者类进行声明。
分类:
其他好文 时间:
2018-05-21 12:39:43
阅读次数:
159
//C++友元,包括友元函数和友元类 //C++友元函数 //C++友元类 /* 当某个类A,声明另外一个类B为其友元类的时候,那么在B中可以访问A的private内容 */ #include using namespace std; class A { private: friend class ... ...
分类:
编程语言 时间:
2018-04-06 15:22:22
阅读次数:
187
友元 类可以允许其他类或函数访问它的非共有成员,办法是令其他类或函数成为它的友元。如果类想把一个函数作为它的友元,只需要添加一条以friend关键字开始的函数声明语句即可。 友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限,友元不是类的成员也不受它所在区域访问控制级别的约束。 一般来说最 ...
分类:
编程语言 时间:
2018-01-28 14:40:29
阅读次数:
158
友元函数可以修改类的私有属性,写在类的public/private/protected底下都可以。友元函数的函数体写在类的外面时,写法和普通函数一样,不需要加friend关键字,但函数入口参数里面一般肯定是要带一个类的指针或者类的引用以便使用类的私有属性。 友元类的作用和友元函数相同。当一个类A被声 ...
分类:
编程语言 时间:
2018-01-25 00:25:34
阅读次数:
265
一、友元介绍 我们知道,类的成员函数可以访问同类的其他成员函数,包括公有、私有和保护成员。而类的外部函数只能访问类的公有成员。友元是一种允许非类成员函数访问类的非公有成员的一种机制。可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元。 友元函数友元类 二、友元函数友元函数在类作用域外定 ...
分类:
其他好文 时间:
2017-12-26 00:43:14
阅读次数:
156
这里继续介绍之前没有说的一些类的特性。这些特性包括:类型成员、类的成员的类内初始值、可变数据成员、内联成员函数、从成员函数返回*this、关于如何定义并使用类类型及友元类的更多知识。 类成员再探 定义一个类型成员 除了定义数据和函数成员之外,类还可以自定义某种类型在类中的别名。 在类的public部 ...
分类:
其他好文 时间:
2017-11-16 11:29:15
阅读次数:
160
#include using namespace std; class Circle; class Point { private: float x; float y; public: Point(); Point(float a,float b); friend class Circle; fri... ...
分类:
其他好文 时间:
2017-11-08 23:34:05
阅读次数:
351
类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。 友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。 ...
分类:
其他好文 时间:
2017-10-25 00:34:25
阅读次数:
157