上一页 1 ··· 14 15 16 17 18

2012年2月28日

摘要: 我们知道,当一个源文件所依赖的头文件被修改时,这个源文件需要被重新编译(易碎的基类问题),为了能讲述我将说明的这个方法,我们先来看看一个简单的例子,其代码如下://head.hstruct A{ int i;};class B{ A* a;public: B(int n = 0); void show(); ~B();};//head.cpp#include "head.h"#include <iostream.h>B::B(int n){ a = new A; a->i = n;}void B::show(){ cout << a->i 阅读全文
posted @ 2012-02-28 13:30 很多不懂呀。。 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 代理类,这个类能让我们在一个容器中存储类型不同但相互关联的对象。创建代理将会复制所代理的对象,如果想避免这些复制该怎么办?通常参数和返回值是通过复制自动传递的,用引用传递参数可以避免这样的复制,但是这样对返回值来说不太容易(比如局部对象)。同样可以用指针来避免复制,但是使用指针有几个问题:(1)使用对象指针比直接使用对象要困难。(2)未初始化的指针非常危险,在c++实现中,只要对这样的指针实施复制操作就会出现问题。(3)无论何时,只要有几个指针指向同一个对象,就必须考虑在什么时候删除这个对象。为了能够在保持多态性的前提下避免复制对象,c++解决方法就是定义句柄类,将句柄类的对象绑定到它们所控制 阅读全文
posted @ 2012-02-28 11:33 很多不懂呀。。 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 一、类的 static 数据成员1. 类的 static 数据成员必须在类外部进行初始化。 class Test { public: ... ... private: static int ival; }; int Test::ival=0; //必须初始化,否则编译出错!2. static 数据成员的类型可以是该成员所属的类类型。而非static数据成员被限定声明为其自身类对象的指针或引用。 class Test { public: ... ... private: static Test stobj; //正确。static数据成员stobj的类型可以为Test类型 Test *ptobj 阅读全文
posted @ 2012-02-28 11:22 很多不懂呀。。 阅读(356) 评论(0) 推荐(1) 编辑
摘要: 一、类的设计的几个问题1、数据成员变量私有化: 大多数public变量都是不安全的,我们无法保证使用者对它进行无意的篡改,对于一些成员变量,如果类外需要对其进行访问,可以通过两种方式对数据进行保护,一种是函数的调用,一种是引用的实现;如下代码所示:class A{public:int length;......}复制代码函数的方式实现对数据的保护:(注:类成员函数后面加const修饰,表明成员函数隐式传入的指针是const指针,因此不能对类数据成员进行修改;)?class A { public: int Getlength()const; private: int length; ...... 阅读全文
posted @ 2012-02-28 09:56 很多不懂呀。。 阅读(354) 评论(0) 推荐(2) 编辑

2012年2月27日

摘要: 重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。 以下讨论中将用到的例子:classCExample{public: CExample(){pBuffer=NULL; nSize=0;} ~CExample(){deletepBuffer;}voidInit(intn){ pBuffer=newchar[n]; nSize=n;}private:char*pBuffer;//类的对象中包含指针,指向动态分配的内存资源intnSize;}; 这个类的主要特点是包含指向其他资源的指针。pBuffer指向堆中分配的一段内存空间。一、拷贝构造函数intmai 阅读全文
posted @ 2012-02-27 17:44 很多不懂呀。。 阅读(296) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18

导航