1.友元 1.定义为谁友元,就在谁的类中用关键字friend声明其要定义的友元。 2.一些函数不是类的一部分,但又频繁访问类的数据成员,此时可定义为友元函数,也可定义友元类。 3.友元只能发生在异类之间,同类之间无隐私。 4.作用:提高程序的运行效率,但破坏了类之间的封装和隐藏性,使得非成员函数可以 ...
分类:
编程语言 时间:
2016-07-30 18:11:20
阅读次数:
170
运算符重载使得用户自定义的数据以一种更简洁的方式工作。 重载运算符函数可以对运算符作出新的解释,但原有基本语义不变: 不改变运算符的优先级。 不改变运算符的结合性。 不改变运算符所需要的操作数。 不能创建新的运算符。 运算符重载的语法形式 运算符重载是一种特殊的成员函数或友元函数。 成员函数的语法形 ...
分类:
其他好文 时间:
2016-07-12 23:00:44
阅读次数:
220
几个关键点: 需要前置声明!--奇怪的是别人告诉我也可以不需要,但我这里不行! 友元函数的函数名后面的<>,必须要有。 ...
分类:
编程语言 时间:
2016-07-12 19:38:04
阅读次数:
148
友元函数可以访问类的私有变量,还可以访问私有函数 1 类本身的友元函数 虽然在类中说明友元函数,但它并不是类的成员函数,所以可以在类外面像普通函数那样定义这个函数。 在类中说明友元函数带friend,在类外面定义这个函数不带friend 2 将成员函数用做友元 3 将一个类说明为另一个类的友元 若F ...
分类:
其他好文 时间:
2016-07-11 23:43:57
阅读次数:
241
我们知道运算符重载函数可以选择两种形式(1)成员函数形式 (2) 全局友元函数形式。那么我们应该怎么样选择呢? 首先按照语法规定有的运算符只能由成员函数重载的运算符,例如operator[],operator=。而有些运算符既可以用成员函数重载,也可以冲全局友元函数重载,例如:++ ,——,+,—, ...
分类:
其他好文 时间:
2016-07-08 00:15:37
阅读次数:
321
1,请问类中函数const修饰的谁?
chunli@Linux:~/c++$catmain.cpp
#include<iostream>
#include<stdlib.h>
usingnamespacestd;
classA
{
public:
//const的三种写法
//constvoidfun(inta,intb)
//voidconstfun(inta,intb)
//voidfun(inta,intb)const
voidfun(..
分类:
编程语言 时间:
2016-06-30 23:30:22
阅读次数:
265
假设有这么一个类 这时候如果外界的一个函数(void display() )想去访问aa这个类的name这个成员变量,这个函数可能不属于任何一个类,也可能是其他类的 。 显然是不可能的,因为他是类的私有成员,只有该类的成员函数才能访问 但这时候又一定要访问这个变量,这时候就可以把这个函数声明为这个类 ...
分类:
编程语言 时间:
2016-06-28 10:56:48
阅读次数:
198