摘要: 配置IDE环境来使用irrlicht引擎: (VS2012下)菜单栏项目 -> 项目属性窗口下 C/C++ -> 常规 -> 附加包含目录中添加irrlicnt引擎文件目录下include文件夹 连接器 -> 常规 -> 附加库目录中添加irrlicnt引擎文件目录下lib\Win32-visualstudio文件夹程序清单如下:---HelloWorld.cpp---包含头文件irrlicht.h, Windows.h 必须先配置好IDE环境编译器才能正确查找到irrlicht.h的位置#include #include 使用名称空间irr和其下五个子名称空间名 阅读全文
posted @ 2013-07-12 15:43 庄懂 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 上题中,使用定位new分配内存中存在两个问题。1,pc3创建的时候覆盖掉了pc1,这是因为new对象时提供的地址(buffer)相同,应当给后创建的对象提供的地址一个偏移量sizeof(JustTesting);2,delete [] buffer 未能调用定位new的两个对象pc1,pc3的析构函数,需要显式的调用他们。程序清单如下:// placenew2.cpp#include #include #include using namespace std;const int BUF = 512;class JustTesting{private: string words; int num 阅读全文
posted @ 2013-05-15 13:22 庄懂 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 试用使用定位new运算符给对象分配内存。程序清单如下:// placenew1.cpp#include #include #include // 使用定位new运算符using namespace std;const int BUF = 512;class JustTesting{private: string words; int number;public: JustTesting(const string& s = "Just Testing", int n = 0) { words = s; number = n; cout Show(); cout Sho 阅读全文
posted @ 2013-05-15 13:17 庄懂 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 续上题,用指向对象的指针改写Example6。程序清单如下:// sayings2.cpp#include #include #include #include "string1.h"const int ArSize = 10;const int MaxLen = 81;int main(){ using namespace std; String name; cout > name; cout :\n"; String sayings[ArSize]; char temp[MaxLen]; int i; for (i = 0; i 0) { cout le 阅读全文
posted @ 2013-05-15 13:13 庄懂 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 续上题改进String类,修正完善之前定义的构造析构函数与赋值运算符函数,增加对关系运算符和对访问运算符的重载,以及其他一些改动。String1类私有部分:1,数据成员 char* 指向字符串起点的指针; 2,int 记录字符串长度的变量(不含\0); 3,静态类成员变量 static int 记录类对象的总数; 4,常量 字符串长度限制;公有部分:1,构造函数与析构函数; 2,返回字符串长度的函数; 3,重载运算符函数; 4,重载关系运算符 输入输出运算符的友元函数; 5,静态类成员函数 用以返回类实例总个数的值。程序清单如下:// s... 阅读全文
posted @ 2013-05-12 23:18 庄懂 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 定义一个不完善的类,感受特殊成员函数在默认定义下给程序带来的错误和隐患。StringBad类私有部分:1,char* 一个指向字符串起点的指针; 2,int 字符串的长度(不含\0); 3,静态类成员变量 static int 用于记录类对象的总数;公有部分:1,构造和析构函数; 2,友元函数 重载“class StringBad{private: char* str; int len; static int strNum;public: StringBad(); StringBad(const char* s); ~StringBad(); ... 阅读全文
posted @ 2013-05-12 23:03 庄懂 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 定义一个复数类,并检验它。Complex类私有部分:数据成员,复数的实部与虚部;公有部分:1,构造与析构函数; 2,设置数据成员的函数; 3,重载运算符函数“+”,“-”,“*”,“~”; 4,友元函数 重载“*” ">" 运算符。程序清单如下:// complex.h#ifndef COMPLEX_H_#define COMPLEX_H_#include class Complex{private: // 数据成员 double realPart; double imagPart;public: // 构造与析构函数 Complex(); Co... 阅读全文
posted @ 2013-05-12 22:35 庄懂 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 续上题继续改进stonewt类,重载全部6个关系运算符,并检验新的类方法。改动的内容有:增加6个成员函数重载所有6个关系运算符。程序清单如下:// stonewt3.h#ifndef STONEWT3_H_#define STONEWT3_H_#include class Stonewt{public: // 状态成员 enum Mode {STN, LBS};private: enum {LbsPerStn = 14}; Mode mode; int stone; double pdsLeft; double pounds;public: // 构造函数和析构... 阅读全文
posted @ 2013-05-12 21:59 庄懂 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 改进Example16~17中对stonewt类的定义,并检验可用性。改动内容有:1,声明状态成员记录对象所采用的单位模式; 2,重载+,-,*,class Stonewt{public: // 状态成员 enum Mode {STN, LBS};private: enum {LbsPerStn = 14}; Mode mode; int stone; double pdsLeft; double pounds;public: // 构造函数和析构函数 Stonewt(); Stonewt(int m_stone, double m_pdsLe... 阅读全文
posted @ 2013-05-06 08:41 庄懂 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 修改Example10~12,将类定义中的运算符重载都改用友元函数实现。显然,需要对mytime3.h,mytime3.cpp做修改,而usetime3.cpp不需要修改。程序清单如下:// mytime4.h#ifndef MYTIME3_H_#define MYTIME3_H_#include class Time{private: int hours; int minutes;public: Time(); Time(int h, int m = 0); void AddMin(int m); void AddHr(int h); void Reset(int h = 0, int m 阅读全文
posted @ 2013-05-04 20:20 庄懂 阅读(164) 评论(0) 推荐(0) 编辑