一般运算符重载在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形式比较简单,就是在类里面定义了一个与操作符相关的函数。友元函数因为没有this指针,所以形参会多一个。// 运算符重载,这里又叫赋值函数string& operat...
分类:
其他好文 时间:
2015-08-31 14:54:17
阅读次数:
148
1 为什么要用友元函数结合着类的特性和类中一般成员函数,我们可以这样理解:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别...
分类:
其他好文 时间:
2015-08-29 20:02:31
阅读次数:
147
在封装中C++类数据成员大多情况是private属性;但是如果接口采用多参数实现肯定影响程序效率;然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的“后门”——友元关系;
C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。
友元函数:既将一个普通的函数在一个类中说明为一个friend属性;其定义(大多数会访问该类的成员)应在类后;
友元成...
分类:
其他好文 时间:
2015-08-20 10:38:58
阅读次数:
146
static 表示静态的意思 在c++中有两种表示 ,静态成员变量和静态成员函数一个类中的静态成员只属于当前类,不属于某个对象。一个类的静态成员只有一份由当前类所有,每个对象都可以访问静态成员,当然也可以通过类名来访问 这里推荐用类名::静态成员来访问static 成员函数应该在所有的成员函数之外....
分类:
其他好文 时间:
2015-08-10 21:40:25
阅读次数:
119
在我前前面已经说过组合类的概念了,今天我再介绍两个类,友元,以及内部类。组合类,就是一个类中有另一个类的对象,如声明一个classpenson,成员变量有姓名,年龄,出生日期等,在声明一个date类,这个类里面就是存的年月日的信息,因此我们可以将person类的出生日期设为date..
分类:
其他好文 时间:
2015-08-10 20:16:48
阅读次数:
126
C++ Primer 学习笔记_26_操作符重载与转换(1)--可重载/不可重载的操作符、成员函数方式重载、友元函数方式重载
引言:
明智地使用操作符重载可以使类类型的使用像内置类型一样直观!
一、重载的操作符名
像任何其他函数一样,操作符重载函数有一个返回值和一个形参表。形参表必须具有操作符数目相同的形参。比如赋值时二元运算,所以该操作符函数有两个参数...
分类:
编程语言 时间:
2015-08-06 20:33:18
阅读次数:
159
C++ Primer 学习笔记_27_操作符重载与转换(2)--++/--运算符重载、!运算符重载、赋值运算符重载 、String类([]、 +、 += 运算符重载)、>>和<<运算符重载
一、++/--运算符重载
1、前置++运算符重载
成员函数的方式重载,原型为:
函数类型 & operator++();
友元函数的方式重载,原型为:
fri...
分类:
编程语言 时间:
2015-08-06 20:32:57
阅读次数:
126
举个例子:23456789101112131415161718192021222324252627282930313233#include usingnamespacestd; clas...
分类:
其他好文 时间:
2015-08-06 11:05:05
阅读次数:
76
3.运算符重载的形式:运算符函数重载一般有两种形式:重载为类的成员函数和重载为类的非成员函数。非成员函数通常是友元。(可以把一个运算符作为一个非成员、非友元函数重载。但是,这样的运算符函数访问类的私有和保护成员时,必须使用类的公有接口中提供的设置数据和读取数据的函数,调用这些函数时会降低性能。可以内...
分类:
其他好文 时间:
2015-08-06 01:48:50
阅读次数:
90
1. 对private,protected,public的理解:private:只能由 1.该类中的函数;2.其友元函数访问。protected:可以被 1.该类中的函数;2.子类的函数;3.其友元函数访问。ref1 ref22.
分类:
编程语言 时间:
2015-08-03 20:45:49
阅读次数:
124