C/C++游戏角色随机姓名生成代码实现与内存管理

1 下载量 109 浏览量 更新于2024-07-15 收藏 413KB PDF 举报
本篇文章主要介绍了如何使用C/C++编程语言实现一个名为CName的游戏角色名称生成类,用于随机生成具有姓氏和名字的角色名称。代码的核心在于定义了一个CName类,该类包含以下几个关键部分: 1. 类定义:首先,我们看到`#ifndef __NAME_H__`和`#define __NAME_H__`,这是预处理指令,用于防止多次包含同一头文件。接下来是`class CName`的声明,定义了一个名为CName的公共访问类。 2. 构造函数与析构函数:`CName()`是构造函数,用于初始化对象;`virtual ~CName()`是析构函数,确保在对象生命周期结束时释放内存。`GetName()`是一个公共成员函数,用于获取随机生成的名字。 3. 内部数据成员:`protected`关键字表明了几个内部数据成员,包括单维度数组`m_pSurname_OneDimensional`用于存储姓氏字符串,二维指针数组`m_ppSurname`用于存储多个姓氏;同样有`m_pName_OneDimensional`和`m_ppName`用于存储名字。此外,`charm_szName[7]`用于存储最终生成的完整姓名。 4. 初始化函数:`void InitSurname()`和`void InitName()`分别负责生成姓氏和名字。它们可能包含了从预定义的姓氏和名字列表中随机选择的逻辑,每个名字由3个字符(对应3个中文字符)或5个字符(对应2个汉字)组成。 5. 对象实例化和内存管理:在`CName::CName()`的实现中,通过循环和`new[]`运算符动态分配了姓氏和名字的内存,并设置了初始值。`srand((unsigned)time(NULL))`用于设置随机数种子,确保每次程序运行时生成不同的随机名字。析构函数`CName::~CName()`负责在对象销毁时删除这些动态分配的内存。 总结来说,本文档提供了一个C/C++实现的游戏角色名称生成器,通过随机选择姓氏和名字的组合来创建独特的角色名。它展示了如何在C++中管理内存和使用字符串数组来存储大量的名字数据。这对于需要在游戏开发中快速生成多样化角色名的场景非常实用。