C++面向对象程序设计:字符数组详解

需积分: 16 14 下载量 144 浏览量 更新于2024-07-13 收藏 8.57MB PPT 举报
"C++面向对象程序设计中的字符数组" 字符数组是C++编程中用于存储字符数据的数组,每个元素通常占用一个字节的空间。在C++中,字符数组的定义方式是`char 数组名[常量表达式];`。例如,声明一个能存放4个字符的数组`char c[4];`。接着,可以通过下标访问数组的元素,如`c[0]`, `c[1]`, `c[2]`等,将字符赋值给它们,例如`c[0]=‘I’; c[1]=‘m’; c[2]=‘_’;`。 C++语言是从C语言发展和完善而来的,C语言起源于20世纪60年代的BCPL和B语言,由Dennis Ritchie和Brian Kernighan在贝尔实验室设计。C++由Bjarne Stroustrup在C语言基础上引入了面向对象的概念,增加了类、模板、异常处理等功能,使得它既能支持过程化编程,又能进行面向对象编程,因此具有很高的灵活性和实用性。 C语言的特点包括: 1. 结构化特性:C语言采用结构化编程方法,便于设计大型系统程序和小型控制程序。 2. 高级与汇编语言结合:C语言的运算符丰富,包括算术、逻辑和位运算,提供灵活的数据结构。 3. 可移植性:C语言编写的程序在不同计算机平台之间移植相对容易。 4. 语法自由度大:虽然这使得熟练程序员可以编写高效代码,但也增加了初学者的学习难度。 C++继承了C语言的这些特点,并扩展了面向对象编程(OOP)概念,如类(class)、对象(object)、继承(inheritance)、封装(encapsulation)、多态(polymorphism)等。面向对象编程使代码更易于管理和复用,提高了软件的可维护性和可扩展性。 在C++中,字符数组常用于处理字符串,比如存储和操作文本数据。同时,C++标准库提供了`std::string`类,它在处理字符串时提供了更多便利和安全的函数。然而,理解字符数组的基本操作仍然是学习C++的重要部分,因为这有助于深入理解内存管理、指针以及C++与C的接口。 在编程实践中,掌握字符数组和字符串的使用对于编写高效且可靠的C++程序至关重要。同时,了解C++的历史和语言特性,有助于我们更好地理解和利用这种强大的编程工具。

. 定义一个基类 BaseString,实现基本的输入字符串的功能。 //-------------------------------------------------------------------------------------------------- class BaseString { public: char *GetData();//返回字符串 void Input(); //输入字符串,遇到换行符结束 void Display();//显示字符串 BaseString(); ~BaseString(); unsigned int Getlength(){ return Length;}//获取字符串长度 protected: char Data[1024]; unsigned Length; //表示字符串的长度,不包括结束的'\0' }; //-------------------------------------------------------------------------------------------------- 2. 定义一个类 ReString,公有继承自 BaseString,添加一个函数 Reverse()实 现字符串的倒置功能,即:将对象中的数据成员 Data 数组的元素倒置。倒置的概 念是:原字符串为“abcd1234”,倒置后为“4321dcba”。 3. 定义一个类 CopyString,公有继承自 BaseString,添加一个函数 Copy()实现 字符串的拷贝功能(传入的参数可以是一个字符串对象,也可以从一个字符串常量, 将参数中的字符串拷贝到对象的 Data 数组中去,注意:不要使用系统内置的 strcpy() 函数)。 面向对象程序设计上机指导 20 4. 定义一个类 CmpString,公有继承自 BaseString,添加一个函数 Compare() 实现字符串的比较功能(传入的参数可以是一个字符串对象,也可以从一个字符串 常量,将参数中的字符串同对象中的 Data 进行比较)。 思考字符串比较的算法。注意:不要使用系统内置的 strcmp()函数。 5. 在 main()函数中体现出派生类的构造函数的调用次序。可以在各类的构 造函数中输出“I am the * class’s constructor”。*表示当前类名。 6. 定义一个类 NewString 继承自 ReString、CopyString 和 CmpString 三个类, 在程序中体现出多重继承中的基类的继承程序。为基类 BaseString 增加功能: ToUpper()函数将所有字母大写,ToLower()函数将所有字母小写。并在继承的过程 中声明为虚基类,比较 BaseString 作为虚基类和非虚基类的情况下的区别

2023-05-26 上传