16.12编写你自己版本的Blob和BlobPtr模板,包含书中未定义的多个const成员。Blob.h(注意,成员函数的声明和定义要放在一个头文件中)/*记住,模板的头文件中通常既包括声明也包括定义。函数模板和类模板成员函数的定义通常放在头文件中,不能分开放。。。。谨记*/#ifndef BLOB...
分类:
其他好文 时间:
2014-09-01 00:21:42
阅读次数:
256
为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。...
分类:
其他好文 时间:
2014-08-31 18:25:31
阅读次数:
212
当一个函数不属于某个具体的实例而属于整个类,那么这个函数最好写成静态成员函数,这样就可以直接用类名调用Class::Func()对于一般成员函数当用obj.Func()调用函数时,编译器会将其编译成TypeOf(obj)::Func()的样式,所以静态成员函数不能这么调用友元函数和静态成员函数都不属...
分类:
编程语言 时间:
2014-08-29 17:50:38
阅读次数:
306
private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对...
分类:
编程语言 时间:
2014-08-29 12:50:47
阅读次数:
183
1,friend申明一个友元friend一般为一句申明式,它位于一个类的内部,它申明一个类或者一个函数为该类的友元。friend并不是定义一个成员函数,所以 friend放在public,protected或者private前都可以,完全是一样的。做为一个友元,即表示在该类或者该函数内部可以访问这个...
分类:
编程语言 时间:
2014-08-28 08:28:19
阅读次数:
278
??
1.第一个最简单的类模板案例
#include
"mainwindow.h"
#include
#include
#include
templateclass
T>
class
run
{
public:
T
w;
void
show()
{
...
分类:
其他好文 时间:
2014-08-27 14:46:49
阅读次数:
286
以构建一个n纬网格为例,讲述模板递归。首先是一个简单的一纬网格的实现,这个网格实现了规定长度的网格的实例化,并且能够在不同大小的网格类中自由的转型(通过模版嵌套的cast_ctr)(使用到的技术,非类型参数模版,模版嵌套,类模版特例化,模版友元函数)#include #include using n...
分类:
其他好文 时间:
2014-08-27 01:35:57
阅读次数:
329
一些基本的模版特性:非类参数模版模版所声明的参数可以不是类参数,可以声明的非类参数包括整数(double,float不可以),enum,对象引用或指针。通过模版嵌套实现类或非类参数载类方法参数上的重载(调用时实现,不在定义时实现)友元函数模版:直接举例:template friend ostream...
分类:
其他好文 时间:
2014-08-26 13:34:36
阅读次数:
279
??
1.拷贝构造
//拷贝构造的规则,有两种方式实现初始化。
//1、一个是通过在后面:a(x),b(y)的方式实现初始化。
//2、第二种初始化的方式是直接在构造方法里面实现初始化。
案例如下:
#include
//如果声明已经定义,边不会生成
class classA
{
private:
int a;
int b;
public:
//拷贝构造...
分类:
其他好文 时间:
2014-08-21 22:48:25
阅读次数:
355
/**
* 功能:嵌套友元
* 时间:2014年8月21日07:21:29
* 作者:cutter_point
*/
#include
#include //为了初始化时使用memset()
#include
using namespace std;
const int sz=20;
struct Holder
{
private:
int a[sz]; //一个整形...
分类:
编程语言 时间:
2014-08-21 09:53:23
阅读次数:
238