定义了A类的时候,需要定义一个B类来完善A的功能,A类当中有 返回类型为B的函数 ,定义A之前,先声明了B,且B作为A的友元,需要访问A的私有成员。 eg: class B; class A { public: friend class B; A(); B fun1() {return B(*thi ...
分类:
其他好文 时间:
2017-12-21 23:04:42
阅读次数:
320
运算符重载的意思就是给原有的运算符赋值新的功能,来满足我们更多的需求。 运算符重载可以分为两种形式:一、一元运算符重载 (-)负号的重载: 友元函数的重载: friend coordinate operator-(const coordinate &coor) 成员函数的重载: coordinate ...
分类:
其他好文 时间:
2017-12-17 00:59:14
阅读次数:
130
一、关键点 命名空间&作用域&全局作用域 命名空间的多种形式:全局命名空间、嵌套的命名空间、内联命名空间、未命名的命名空间 命名空间与类:名字查找、友元 命名空间与重载 二、基础知识点 全局作用域:也叫全局名字空间,就是main函数所在的作用域 命名空间:分割了全局名字空间,其中每个命名空间是一个作 ...
分类:
其他好文 时间:
2017-11-18 20:57:41
阅读次数:
214
一、关键点 定义函数模板&类模板 模板参数列表:非类型参数 类模板类名的使用:依据作用域是否加上模板类型 类模板和友元:设置友好关系 模板参数:使用类的类型成员、默认模板实参 成员模板的使用:非模板类的成员模板、模板类的成员模板 二、定义函数模板 注:一个非类型参数可以一个整型,或者是一个指向对象或 ...
分类:
其他好文 时间:
2017-11-18 13:39:02
阅读次数:
192
这里继续介绍之前没有说的一些类的特性。这些特性包括:类型成员、类的成员的类内初始值、可变数据成员、内联成员函数、从成员函数返回*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
首先我们需要知道类的三个用户分别是:类的实现者,类的普通用户和类的继承者(派生类),接下来分别讲解这几种用户的区别。 1 、类的实现者:顾明思议,就是类的设计者,拥有最大的权限,可以访问类中任何权限的成员,主要负责编写类的成员和友元的代码。可以访问类中的公有部分(public),保护部分(prote ...
分类:
编程语言 时间:
2017-11-08 17:39:12
阅读次数:
186
一、protected成员 1. 受保护的成员的可访问性 对于一个类的protected成员,①该类的用户(如类对象)不能访问它,②该类的派生类的成员(及其友元)可以访问它。 派生类的成员及其友元不能访问其基类对象的受保护成员,它们只能访问继承到派生类对象中的受保护成员 派生类的成员及其友元只能访问 ...
分类:
其他好文 时间:
2017-11-03 19:03:49
阅读次数:
239
类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。 友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。 ...
分类:
其他好文 时间:
2017-10-25 00:34:25
阅读次数:
157
私有(private)成员 私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员。 默认情况下,类的所有成员都是私有的。例如在下面的类中,width 是一个私有成员,这意味着,如果您没有使用任何访问修饰符,类的成员将被假定为私有成员: 实际操作中,我们一般会在 ...
分类:
其他好文 时间:
2017-10-24 00:12:44
阅读次数:
216