C++初级课堂复习(第14章节)ppt.pptVIP

  • 0
  • 0
  • 约1.73千字
  • 约 6页
  • 2018-05-03 发布于河南
  • 举报
C初级课堂复习(第14章节)ppt

程序设计基础 C/C++ 第14章 new运算符 New运算符与对象 用new分配内存 示例: 解析器设计和StringParser类 一、 new操作符与对象 进出作用域时分配、释放单元。 二、用new分配内存 三、示例:设计一个解析器(词法分析器) 四、分析 * 对象分类 命名的自动对象 自由对象(动态对象) 静态的成员对象(子对象) 对象数组 局部的静态对象 全局对象 表达式的局部对象 内存对象 class T {…}; void f( int x ) { T aa ; //命名的自动对象 T bb; { T cc; …… } T dd; …… } 构造函数调用次序: aa bb cc dd 析构函数调用次序: cc dd bb aa 示例 ? class T { int n; T *next; public: T(int in=0 ): n(in) {}; …… }; void main() { T *p = new T; T *q = new T(20); …… delete p; delete q; } 调用构造函数 调用析构函数 ? 用new创建,用delete释放 使用new可根据需要分配数组空间 void main() { int *p = new int[100]; …… delete[] p; } void main() { int n; cout“请输入元素个数”; cinn; int *p = new int[n]; …… delete[] p; } 运行一下new1.cpp int main() { int sum = 0, n ,*p; cout “输入元素个数: ; cin n; p = new int[n]; // Allocate n integers for (int i = 0; i n; i++) { cout i “: ; cin p[i]; sum += p[i]; } cout “这些项是: ; for (int i = 0; i n; i++) cout p[i] , ; cout “\nThe total is: sum; cout “\nThe average is: (double) sum / n endl; delete [] p ; // Release n integers. return 0; } 释放数组空间时[]是必须的 功能: 在用户输入的字符串中找出每一个单词(或数据)。 例:“3/4/55@10” ? “3” , “4” , “55” 和 “10” 类名:StringParser 数据成员:input_str, delimiters, pos //输入串,分隔符串,位置 构造函数: StringParser(inp,delim);//输入串,分隔符串 StringParser(input_str);//输入串, 默认的分隔符串 成员函数: get();// 找到下个子串。将它拷贝到一个新建字符串中 get_int(); //找到一个子串,将它转换成整数返回 more(); //检查输入字符串中还有未处理字符,返回“true” reset(); //将内部的当前位置指示符重新设为输入串的开始处 阅读教材page262的程序parser1.cpp 运行一下parser1.cpp 改进一下parser1.cpp

文档评论(0)

1亿VIP精品文档

相关文档