《C&C++完美演绎》源代码
源代码在线查看: 15-3.txt
/* 范例:15-3动态配置内存 */
#include
struct data
{
char name[20];
};
class teacher
{
private:
char name1[20];
public:
data *nick;
teacher(void) // 无初始化的构造函数
{
nick = new data; // 配置内存
cout }
teacher(char *ch) /* 传入参数且初始化的构造函数,将name1初始化 */
{
nick = new data; // 配置内存
strcpy(name1,ch); // 将ch传入的字符复制到name1
cout }
~teacher(void)
{ delete nick; // 为C++释放内存的指令
cout }
void ShowHandLen(void)
{
cout cout cout cout /* cyh动态配置的name1 */
cout }
void display(void)
{
// 将name1的地址输出
cout // 将name1的内容输出
cout // 将cyh1动态配置的nick地址输出
cout }
};
void classTest(void)
{
teacher *cyh = new teacher; /* 构造方式6,动态配置一块teacher对象的存储
空间,将配置空间的地址传给对象指针*cyh */
cout cout cout // 将字符串复制至name[20]
strcpy(cyh->nick->name,"GreatTeacherCYH");
cout cyh->ShowHandLen();
delete cyh;
//-------------------------------------------------
char ch[20] = "Great TeacherCYH";
teacher *cyh1 = new teacher(ch);
/* 构造方式7,动态配置一块teacher对象的存储空间,将配置空间的地址传给对
象指针*cyh1,调用其构造函数,并传入ch将name1做初始化设定 */
cout cyh1->display();
cout cout cout cout cout delete cyh1;}
//---------------------------------------------------------------------------
void main(void)
{
classTest();
getchar();
}
程序执行结果﹕
teacher(void) class Constructor
以teacher类动态配置内存大小 :24 bytes
cyh对象存放的内容值: 00682F48
cyh对象地址: 0065FDCC
字符串的地址: 0041B20B
nick 地址: 00682F5C
nick 内容值: 00682F64
name 地址00682F64
name 内容值: GreatTeacherCYH
cyh name1 地址: 00682F48
teacher class Destructor
teacher(void) class Constructor
以teacher类动态配置内存大小 :24 bytes
name1的地址: 006833F8
name1的内容值: Great TeacherCYH
nick 的地址: 0068340C
cyh1内容: 006833F8
cyh1大小: 4 bytes
cyh1地址: 0065FDC8
ch的地址: 0065FDB4
ch[20]的大小: 20bytes
teacher class Destructor