转载自:http://blog.chinaunix.net/uid-790245-id-2037327.html 问题提出: 我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 ...
分类:
编程语言 时间:
2017-05-09 00:44:15
阅读次数:
177
std::pair是一个结构模板,提供了一种将两个异构对象存储为一个单元的方法. 定义于头文件 <utility> std::make_pair 创建一个std::pair对象,推导出目标类型的参数类型. 定义于头文件 <utility> 示例: pair与make_pair的示例 ...
分类:
其他好文 时间:
2017-05-01 00:23:49
阅读次数:
382
1.C++程序的内存格局分四个区: 1.全局数据区/静态区/字符串常量:全局变量、进态数据、常量 2.代码区:所有类成员函数代码、非成员函数代码 3.栈区/堆栈:为运行函数而分配的局部变量、函数参数、返回数据、返回地址 4.堆区:malloc/free或new delete,从堆中分配和释放内存块 ...
分类:
其他好文 时间:
2017-04-30 23:06:58
阅读次数:
174
1. 友元函数和友元类的需要: 类具有封装和信息隐藏的特性。 只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。 非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。 另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参 ...
分类:
编程语言 时间:
2017-04-26 11:01:45
阅读次数:
156
类的构造函数Python类的构造函数是__init__。它与其他函数的差别,首先是通过前面和后面带两个双下划线来跟别的函数名称进行区分。它的格式例如以下:def __init__(self, 參数列表):def是定义函数的keyword,__init__是构造函数的名称,self是类本身的參数,用来 ...
分类:
其他好文 时间:
2017-04-25 13:16:00
阅读次数:
170
1. 问题的引入——将operator*模板化 Item 24中解释了为什么对于所有参数的隐式类型转换,只有非成员函数是合格的,并且使用了一个为Rational 类创建的operator*函数作为实例。在继续之前建议你先回顾一下这个例子,因为这个条款的讨论是对它的扩展,我们会对Item 24的实例做 ...
分类:
编程语言 时间:
2017-04-11 09:37:46
阅读次数:
273
在类模板中可以出现三种友元声明:(1)普通非模板类或函数的友元声明,将友元关系授予明确指定的类或函数。(2)类模板或函数模板的友元声明,授予对友元所有实例的访问权。(3)只授予对类模板或函数模板的特定实例的访问权的友元声明。 要注意的是,友元函数并非成员函数,是改变了它对类成员的访问权限。 (1)没 ...
分类:
编程语言 时间:
2017-03-31 15:44:43
阅读次数:
218
(1).inline:是一种以空间换时间的做法省去调用函数的额外开销,提高程序的运行效率,它对于编译器而言只是一种建议 (2).友元函数:是可以直接访问类的private成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明 友元类:友元类的所有成员函数都可以是另一个 ...
分类:
其他好文 时间:
2017-03-25 00:12:09
阅读次数:
302
A 友元函数: 友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下: friend 类型 函数名(形式参数); 1.友元函数的声明可以放在类的私有部分,也可以放在公有部分,它 ...
分类:
编程语言 时间:
2017-03-15 18:50:41
阅读次数:
227
相信很多使用C++语言的人都有这么一种错误的观点 - 除了主函数,其他函数都应当声明为某个类的成员函数,以实现封装性。 这种观点错在哪里?我们又该如何在成员函数与非成员函数之间进行选择呢? 针对这个问题,本文将给出一种非常科学的解决方案。 ...
分类:
其他好文 时间:
2017-01-27 12:57:59
阅读次数:
219