友元在类中的使用一般分为两种:(1)友元类(2)友元函数关于友元类:友元类的使用和声明极为简单,只需在需要访问的类中加上friendclassClassname即可。这样被声明的友元类即可访问声明处的类的所有成员,同时声明的位置不限只需要在类中即可。//Tv是一个类,而Remote则是Tv的遥控器,很显然Remote需要使用Tv//中的数据进行操作,此时可声明为友元类。#ifndefTV_H_#d
分类:
其他好文 时间:
2018-07-03 11:40:13
阅读次数:
202
本篇文章包含知识点有:预编译,访问权限,内联函数,常成员函数,构造函数,运算符重载函数,友元。 以代码为示范: 文件名:ccompex.h 文件内容:定义一个简单的复数类。 这47行代码包含了几个c++精髓,下面让我娓娓道来~~~ 一.预编译:#ifndef #define #endif 与#inc ...
分类:
编程语言 时间:
2018-07-01 22:05:48
阅读次数:
212
一、为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。要理解这 ...
分类:
编程语言 时间:
2018-06-14 11:24:27
阅读次数:
191
视C++为一个语言联邦 ——《Effective C++》 oop是C++的一个重要部分,内容多且复杂。按照我脑海中现存有的知识结构结构总结一下 1、访问说明符 一、类内部 public:最开放的权限,即在类内部可以访问,对于该类的实例化像也能访问。 private:最严格的权限,仅类内部和友元可以 ...
分类:
编程语言 时间:
2018-06-02 12:21:04
阅读次数:
152
友元函数 默认一个类的私有属性只能在该类的内部可以直接访问。 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
1 重载函数要求函数具有相同的返回值类型和函数名称,并具有不同的参数序列,而虚函数则要求这三项(函数名,返回值类型,参数序列)完全相同 2 重载函数可以是成员函数或友元函数 而虚函数只能是成员函数 3 重载函数的调用是以传递参数序列的差别作为调用不同函数的依据,而虚函数根据对象的不同的调用不同类的虚 ...
分类:
其他好文 时间:
2018-05-22 00:05:04
阅读次数:
196
今天我们来介绍下一个新概念:友元。那么什么是友元呢?友元是 C++ 中的一种关系,它发生在函数与类之间或者类与类之间。友元关系是单向的,不能传递。下来我们来介绍下友元的用法:a> 在类中以 friend 关键字声明友元;b> 类的友元可以是其他类或者具体函数;c> 友元不是类的一部分,友元不受类中访问级别的限制;d> 友元可以直接访问具体类的所有成员。在类中用 friend 关键字对函数或者类进行声明。
分类:
其他好文 时间:
2018-05-21 12:39:43
阅读次数:
159
一、特殊运算符的重载1. 取值运算符:* "指针解引用运算符" 1)作用:让一个对象模拟指针的行为 2)重载方式: <1>成员函数方式 class A { B & operator * (void) const {...} }; <2>友元函数方式 class A { friend B & oper ...
分类:
其他好文 时间:
2018-05-19 22:35:14
阅读次数:
181