第五讲 C++程序的结构

Size: px
Start display at page:

Download "第五讲 C++程序的结构"

Transcription

1 第五章数据的共享与保护

2 本章主要内容 作用域与可见性 对象的生存期 数据与函数 静态成员 共享数据的保护 友元 编译预处理命令 多文件结构和工程 深度探索 2

3 命名空间作用域作用域与可见性标识符的作用域 标识符在程序正文中有效的区域 函数原型作用域 局部作用域 类作用域 3

4 作用域与可见性函数原型的作用域 函数原型中的参数, 其作用域始于 "(", 结束于 ")" 例如, 设有下列原型声明 : double area(double radius); radius 的作用域仅在于此, 不能用于程序正文其他地方, 因而可有可无 4

5 作用域与可见性局部作用域 函数的形参, 在块中声明的标识符, 其作用域自声明处起, 限于块中, 例如 : void fun(int a) { int b = a; cin >> b; if (b > 0) { int c; c 的作用域... 块 : 一对大括号括起来的一段程序 a 的作用域 b 的作用域 5

6 作用域与可见性类作用域 类作用域作用于特定的成员名 类 X 的成员 m 具有类作用域, 对 m 的访问方式如下 : 如果在 X 的成员函数中没有声明同名的局部作用域标识符, 那么在该函数内可以访问成员 m 通过表达式 x.m 或者 X::m 访问 X::m 的形式访问类的静态成员 通过表达式 ptr->m,ptr 为指向类 X 的一个对象的指针 6

7 作用域与可见性 命名空间 命名空间可以解决类名 函数名等的命名冲突 命名空间的声明 namespace 命名空间名 { 例 各种声明 ( 函数声明 类声明 ) namespace SomeNs { class SomeClass {... ; 7

8 作用域与可见性 匿名命名空间 : 对每个源文件是唯一的 命名空间 命名空间允许嵌套 namespace OuterNs { namespace InnerNs { class SomeClass {... ; 特殊的命名空间 全局命名空间 : 默认的命名空间 在显式声明的命名空间外声明的标识符都在全局命名空间中 8

9 作用域与可见性9 命名空间作用域 一个命名空间确定了一个命名空间作用域 引用其它命名空间作用域中的标识符 命名空间名 :: 标识符名 例 : 声明一个 SomeClass 型的对象 SomeNs::SomeClass obj1; OuterNs::InnerNs::SomeClass obj2; 将其它命名空间作用域的标识符暴露于当前作用域 对指定标识符 using 命名空间名 :: 标识符名 ; 对所有标识符 using namespace 命名空间名 ;

10 作用域与可见性可见性 可见性是从对标识符的引用的角度来谈的概念 可见性表示从内层作用域向外层作用域 看 时能看见什么 如果标识在某处可见, 则就可以在该处引用此标识符 命名空间作用域 类作用域 块作用域 10

11 作用域与可见性可见性 标识符应声明在先, 引用在后 如果某个标识符在外层中声明, 且在内层中 没有同一标识符的声明, 则该标识符在内层 可见 对于两个嵌套的作用域, 如果在内层作用域 内声明了与外层作用域中同名的标识符, 则 外层作用域的标识符在内层不可见 11

12 作用域与可见性同一作用域中的同名标识符 在同一作用域内的对象名 函数名 枚举常量名会隐藏同名的类名或枚举类型名 重载的函数可以有相同的函数名 12

13 作用域与可见性 例 5.1 #include <iostream> using namespace std; int i; // 在全局命名空间中的全局变量 namespace Ns { int j; // 在 Ns 命名空间中的全局变量 int main() { i = 5; // 为全局变量 i 赋值 Ns::j = 6; // 为全局变量 j 赋值 { // 子块 1 using namespace Ns; // 当前块中可以直接引用 Ns 中的标识符 int i; // 局部变量, 局部作用域 i = 7; cout << "i = " << i << endl;// 输出 7 cout << "j = " << j << endl;// 输出 6 cout << "i = " << i << endl; // 输出 5 return 0; 13

14 对象的生存期 对象从产生到结束的这段时间就是 它的生存期 在对象生存期内, 对象将 保持它的值, 直到被更新为止 14

15 对象的生存期静态生存期 这种生存期与程序的运行期相同 在命名空间作用域中声明的对象具有这种生存期 在函数内部声明静态生存期对象, 要冠以关键字 static 定义时未指定初值的基本类型静态生存期变量, 会被赋 0 值初始化 15

16 对象的生存期例 #include<iostream> using namespace std; int i = 5; // 命名空间作用域 int main() { cout << "i=" << i << endl; return 0; i 具有静态生存期 16

17 对象的生存期动态生存期 块作用域中声明的, 没有用 static 修 是的对象是动态生存期的对象 ( 习惯 称局部生存期对象 ) 开始于程序执行到声明点时, 结束于 命名该标识符的作用域结束处 17

18 对象的生存期例 #include <iostream> using namespace std; void fun(); 运行结果 : int main() { fun(); i=6, a=2 fun(); i=6, a=3 void fun() { i 是动态生存期 static int a=1; int i=5; a 是静态生存期 a++; i++; cout<<"i="<<i<<",a="<<a<<endl; 18

19 象的生存期例 5-2 变量的生存期与可见性 #include<iostream> using namespace std; int i = 1; // i 为全局变量, 具有静态生存期 void other() { static int a = 2; static int b; // a,b 为静态局部变量, 具有全局寿命, 局部可见 // 只第一次进入函数时被初始化 int c = 10; // C 为局部变量, 具有动态生存期, // 每次进入函数时都初始化 a += 2; i += 32; c += 5; cout<<"---other---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; b = a; 对19

20 int main() { static int a;// 静态局部变量, 有全局寿命, 局部可见 int b = -10; // b, c 为局部变量, 具有动态生存期 int c = 0; cout << "---MAIN---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; c += 8; other(); cout<<"---main---\n"; cout<<" i: "<<i<<" a: "<<a<<" b: "<<b<<" c: "<<c<<endl; i += 10; other(); return 0; 20

21 运行结果 : ---MAIN--- i: 1 a: 0 b: -10 c: 0 ---OTHER--- i: 33 a: 4 b: 0 c: MAIN--- i: 33 a: 0 b: -10 c: 8 ---OTHER--- i: 75 a: 6 b: 4 c: 15 21

22 对象的生存期; 例 5-3 具有静态 动态生存期对象的时钟程序 #include<iostream> using namespace std; class Clock { public: Clock(); // 外部接口 // 时钟类定义 void settime(int newh, int newm, int news); // 三个形参均具有函数原型作用域 void showtime(); private: // 私有数据成员 int hour, minute, second; 22

23 Clock::Clock() : hour(0), minute(0), second(0) { // 构造函数 void Clock::setTime(int newh, int newm, int news) { // 三个形参均具有局部作用域 hour = newh; minute = newm; second = news; void Clock::showTime() { cout << hour << ":" << minute << ":" << second << endl; 23

24 Clock globclock;// 声明对象 globclock, // 具有静态生存期, 命名空间作用域 int main() { // 主函数 cout << "First time output:" << endl; // 引用具有命名空间作用域的对象 : globclock.showtime();// 对象的成员函数具有类作用域 globclock.settime(8,30,30); Clock myclock(globclock); // 声明具有块作用域的对象 myclock cout<<"second time output:"<<endl; myclock.showtime(); // 引用具有块作用域的对象 return 0; 24

25 程序的运行结果为 : First time output: 0:0:0 Second time output: 8:30:30 25

26 数据与函数数据与函数 数据存储在局部对象中, 通过参数传 递实现共享 函数间的参数传递 数据存储在全局对象中 将数据和使用数据的函数封装在类中 26

27 据与函数使用全局对象 #include<iostream> using namespace std; int global; void f() { global=5; void g() { cout << global << endl; int main() { f(); g(); // 输出 5 return 0; 数27

28 数据与函数 将函数与数据封装 #include<iostream> using namespace std; class Application { public: void f(); void g(); private: int global; ; void Application::f() { global = 5; void Application::g() { cout << global << endl; int main() { Application MyApp; MyApp.f(); MyApp.g(); return 0; 28

29 静态成员静态成员 实例属性 类属性 : 用 static 声明为静态成员 实现同一个类的不同对象之间的数据和函数共享 29

30 静态成员静态成员 静态数据成员 该类的所有对象维护该成员的同一个拷贝 必须在类内声明并在类外定义和初始化, 用 (::) 来指明所属的类 具有静态生存期 静态成员函数 类外代码可以使用类名 ( 或对象名 ) 和作用域操作符来调用静态成员函数 静态成员函数可以直接访问该类的静态数据和函数成员 访问非静态成员, 必须通过对象名 30

31 态成员例 5-4 具有静态数据成员的 Point 类 #include <iostream> using namespace std; class Point { public: Point(int xx=0, int yy=0) : x(xx), y(yy) { count++; Point(Point &p); int getx() { return x; int gety() { return y; void showcount() { cout << " Object count= << count << endl; private: int x,y; static int count; ; 静31

32 Point::Point(Point &p) { x = p.x; x = p.y; count++; int Point::count=0; int main() { Point a(4,5); cout<<"point A:"<<a.getX()<<","<<a.getY(); a.showcount(); Point b(a); cout<<"point B:"<<b.getX()<<","<<b.getY(); b.showcount(); return 0; 32

33 态成员静态成员函数举例 #include <iostream> using namespace std; class Application { public: static void f(); static void g(); private: static int global; ; int Application::global=0; void Application::f() { global=5; void Application::g() { cout << global << endl; int main() { Application::f(); Application::g(); return 0; 静33

34 静态成员 静态成员函数举例 class A { public: static void f(a a); private: int x; ; void A::f(A a) { cout << x; // 对 x 的引用是错误的 cout << a.x; // 正确 34

35 静态成员; C++ 语言程序设计 具有静态数据 函数成员的 Point 类 #include <iostream> using namespace std; class Point { //Point 类定义 public: // 外部接口 Point(int x = 0, int y = 0) : x(x), y(y) { count++; Point(Point &p); ~Point() { count--; int getx() { return x; int gety() { return y; static void showcount() { // 静态函数成员 cout << " Object count = " << count << endl; private: // 私有数据成员 int x, y; static int count; // 静态数据成员声明 35

36 Point::Point(Point &p) { x = p.x; y = p.y; count++; int Point::count=0; int main() { // 主函数实现 Point a(4,5); // 声明对象 A cout<<"point A,"<<a.getX()<<","<<a.getY(); Point::showCount(); // 输出对象个数 Point b(a); // 声明对象 B cout<<"point B,"<<b.GetX()<<","<<b.GetY(); Point:: showcount(); // 输出对象个数 return 0; 36

37 友元 友元是 C++ 提供的一种破坏数据封装和数据隐藏的机制 通过将一个模块声明为另一个模块的友元, 一个模块能够引用到另一个模块中本是被隐藏的信息 可以使用友元函数和友元类 为了确保数据的完整性, 及数据封装与隐藏的原则, 建议尽量不使用或少 使用友元 友元37

38 访问对象中的成员必须通过对象名 友元友元函数 友元函数是在类声明中由关键字 friend 修饰说明的非成员函数, 在它的函数体中能够通过对象名访问 private 和 protected 成员 作用 : 增加灵活性, 使程序员可以在封装和快速性方面做合理选择 38

39 ; 友元例 5-6 使用友元函数计算两点距离 #include <iostream> #include <cmath> class Point { //Point 类声明 public: // 外部接口 Point(int x=0, int y=0) : x(x), y(y) { int getx() { return x; int gety() { return y; friend float dist(point &a, Point &b); private: // 私有数据成员 int x, y; 39

40 float dist( Point& a, Point& b) { double x = a.x - b.x; double y = a.y - b.y; return static_cast<float>(sqrt(x * x + y * y)); int main() { Point p1(1, 1), p2(4, 5); cout <<"The distance is: "; cout << dist(p1, p2) << endl; return 0; 40

41 友元类 若一个类为另一个类的友元, 则此类的所有成员都能访问对方类的私有和保护成员 声明语法 : 将友元类名在另一个类中 使用 friend 修饰说明 友元41

42 ; 友元友元类举例 class A { friend class B; public: void display() { cout << x << endl; private: int x; class B { public: void set(int i); void display(); private: A a; 42

43 void B::set(int i) { a.x=i; void B::display() { a.display(); 43

44 友元关系 友元关系是不能传递的 B 类是 A 类的友元,C 类是 B 类友元, 如无声明,C 类和 A 类之间没有任何友元关系 友元关系是单向的 如果声明 B 类是 A 类的友元,B 类的成员函数就可以访问 A 类的私有和保护数据, 但 A 类的成员函数却不能访问 B 类的私有 保护数据 友元关系是不被继承的 如果类 B 是类 A 的友元, 类 B 的派生类 BB 并不 会自动成为类 A 的友元友元44

45 共享数据的保护常类型 常类型的对象必须进行初始化, 而且不能被更新 常对象 : 必须进行初始化, 不能被更新 const 类名对象名 常引用 : 被引用的对象不能被更新 const 类型说明符 & 引用名 常数组 : 数组元素不能被更新 ( 下一章介绍 ) 类型说明符 const 数组名 [ 大小 ]... 常指针 : 指向常量的指针 ( 下一章介绍 ) 45

46 共享数据的保护常对象举例 class A { public: A(int i,int j) {x=i; y=j;... private: int x,y; ; A const a(3,4); //a 是常对象, 不能被更新 46

47 共享数据的保护 构造函数初始化时只能通过初始化列表 用 const 修饰的对象成员 常成员函数 使用 const 关键字说明的函数 常成员函数不更新对象的数据成员 常成员函数说明格式 : 类型说明符函数名 ( 参数表 )const; 这里,const 是函数类型的一个组成部分, 因此在实现部分也要带 const 关键字 const 关键字可以被用于参与对重载函数的区分 通过常对象只能调用它的常成员函数 常数据成员 使用 const 说明的数据成员 47

48 享数据的保护例 5-7 常成员函数举例 #include<iostream> using namespace std; class R { public: R(int r1, int r2) : r1(r1), r2(r2) { void print(); void print() const; private: int r1, r2; ; 共48

49 void R::print() { cout << r1 << ":" << r2 << endl; void R::print() const { cout << r1 << ";" << r2 << endl; int main() { R a(5,4); a.print(); // 调用 void print() const R b(20,52); b.print(); // 调用 void print() const return 0; 49

50 共享数据的保护; 例 5-8 常数据成员举例 #include <iostream> using namespace std; class A { public: A(int i); void print(); private: const int a; static const int b; // 静态常数据成员 50

51 const int A::b=10; A::A(int i) : a(i) { void A::print() { cout << a << ":" << b <<endl; int main() { /* 建立对象 a 和 b, 并以 100 和 0 作为初值, 分别调用构造函数, 通过构造函数的初始化列表给对象的常数据成员赋初值 */ A a1(100), a2(0); a1.print(); a2.print(); return 0; 51

52 共享数据的保护常引用 常引用 : 被引用的对象不能被更新 非 const 引用只能绑定到普通的对象, 不能绑定要常对象 常引用可以绑定到普通对象和常对象 在函数中无须改变值的参数, 不宜使用普通引用方式传递 传值 传递常引用 : 常用在大对象和复制构造函数 52

53 共享数据的保护; 例 5-9 常引用作形参 #include <iostream> #include <cmath> using namespace std; class Point { //Point 类定义 public: // 外部接口 Point(int x = 0, int y = 0) : x(x), y(y) { int getx() { return x; int gety() { return y; friend float dist(const Point &p1, const Point &p2); private: // 私有数据成员 int x, y; 53

54 享数据的保护例 5-9 常引用作形参 共float dist(const Point &p1, const Point &p2) { double x = p1.x - p2.x; double y = p1.y - p2.y; return static_cast<float>(sqrt(x * x + y * y)); int main() { // 主函数 const Point myp1(1, 1), myp2(4, 5); cout << "The distance is: "; cout << dist(myp1, myp2) << endl; return 0; 54

55 多文件结构多文件结构 ( 例 5-10) 一个源程序可以划分为多个源文件 : 类声明文件 (.h 文件 ) 类实现文件 (.cpp 文件 ) 类的使用文件 (main() 所在的.cpp 文件 ) 利用工程来组合各个文件 55

56 多文件结构外部变量 定义性声明 命名空间作用域中, 不用 extern 关键字声明的变量 用 extern 关键字声明的变量, 同时指定初值 引用性声明 命名空间作用域中, 用 extern 关键字声明的变量, 但未指定初值 56

57 多文件结构外部函数 在所有类之外声明的函数, 都是具有命名空间作用域的 在不同源文件中调用前, 要进行引用性声明 ( 即声明函数原型 ) 57

58 文件结构外部变量与外部函数 // 源文件 1 int i=3; void other() void next(); int main(){ i++; next(); return 0; void next(){ i++; other(); 多// 源文件 2 extern int i; void other(){ i++; 58

59 文件结构把变量和函数限制在编译单元内 命名空间作用域中声明的变量和函数, 在默认情况下都可以被其他编译单元访问 把函数和变量的定义限制在源文件内 安全性 多 防止重名 59

60 多文件结构60 把变量和函数限制在编译单元内 方法一 : 定义全局变量和函数时使用 static 关键字 方法二 : 使用匿名的命名空间 namespace { int n; void f(){ n++; n = 4; f();

61 编译预处理命令 #include 包含指令 将一个源文件嵌入到当前源文件中该点处 #include< 文件名 > 按标准方式搜索, 文件位于 C++ 系统目录的 include 子目录下 #include" 文件名 " 首先在当前目录中搜索, 若没有, 再按标准方式搜索 #define 宏定义指令 定义符号常量, 很多情况下已被 const 定义语句取代 定义带参数宏, 已被内联函数取代 #undef 删除由 #define 定义的宏, 使之不再起作用 61

62 编译预处理命令... 条件编译指令 #if 常量表达式 #if 和 #endif // 当 常量表达式 非零时编译 #endif 程序正文 62

63 编译预处理命令条件编译指令 #else #if 常量表达式 // 当 常量表达式 非零时编译程序正文 1 #else // 当 常量表达式 为零时编译程序正文 2 #endif 63

64 编译预处理命令条件编译指令 #if 常量表达式 1 #elif 程序正文 1 // 当 常量表达式 1 非零时编译 #elif 常量表达式 2 #else #endif 程序正文 2 // 当 常量表达式 2 非零时编译 程序正文 3 // 其他情况下编译 64

65 编译预处理命令条件编译指令 #ifdef 标识符程序段 1 #else 程序段 2 #endif 如果 标识符 经 #defined 定义过, 且未经 undef 删除, 则编译程序段 1, 否则编译程序段 2 65

66 编译预处理命令条件编译指令 #ifndef 标识符 #else 程序段 1 程序段 2 #endif 如果 标识符 未被定义过, 则编译程序段 1, 否则编译程序段 2 66

67 多文件结构不使用条件编译的头文件 //main.cpp #include "file1.h" #include "file2.h" int main() { //file1.h #include "head.h" //file2.h #include "head.h" //head.h class Point { 67

68 多文件结构使用条件编译的头文件 //head.h #ifndef HEAD_H #define HEAD_H class Point { #endif 68

69 常成员函数的声明原则 深 适当地将成员函数声明为常成员函数, 能够提高代码质量 度 凡是不会改变对象状态的函数, 都应当声明为常成员函数 探 什么是改变对象状态? 索 改变对象状态, 不简单地等同于改变成员数据的值 只要一个成员函数执行与否, 不会影响以后接口函数的调用结果, 都可以认为它不会改变对象状态 69

70 常成员函数的声明原则 class Line { //Line 类的定义 public: // 外部接口 Line(const Point &p1, const Point &p2) : p1(p1), p2(p2), len(-1) { double getlen(); private: // 私有数据成员 Point p1, p2; //Point 类的对象 p1,p2 double len; 深度探索; double Line::getLen() { if (len < 0) { double x = p1.getx() - p2.getx(); double y = p1.gety() - p2.gety(); len = sqrt(x * x + y * y); return len; 70 改变数据成员, 但不改变对象状态

71 常成员函数的声明原则 在原则上, 应当将 getlen 声明为常成员函数, 但由于修改了数据成员的值, 语言规则不允许 怎么办? 使用 mutable 关键字 深度探索 mutable 关键字使得被修饰的成员对象无视 常对象的成员对象被视为常对象 这一语言原则 71 mutable 须慎用

72 修改后的程序代码 class Line { //Line 类的定义 public: // 外部接口 Line(const Point &p1, const Point &p2) : p1(p1), p2(p2), len(-1) { double getlen() const; private: // 私有数据成员 Point p1, p2; //Point 类的对象 p1,p2 mutable double len; ; double Line::getLen() const { if (len < 0) { double x = p1.getx() - p2.getx(); double y = p1.gety() - p2.gety(); len = sqrt(x * x + y * y); return len; 72 深度探索

73 代码的编译 编译 : 源文件 目标文件 源文件的函数代码 目标文件的代码段 源文件的静态对象 目标文件的数据段 分为初始化的数据段和未初始化的数据段 深度探索 符号表 : 将静态对象和函数的名字与地址关联 重定位信息 其它信息 73

74 示例代码 (1) a.cpp extern int y; int func(int v); int main() { int z = 1; y = func(z); 深度探索return 0; 代码段 (.text) (main 的代码 ) lea 0x4(%esp),%ecx and $0xfffffff0,%esp 符号表 main _Z4funci y a.o 未定义 未定义 74

75 深度探索示例代码 (2) b.cpp int x = 3; int y; int func(int v) { return v + x; 代码段 (.text) (func 的代码 ) push %ebp mov %esp,%ebp 初始化的数据段 (.data) (x 的初值 ) 3 未初始化的数据段 (.bss) (y) 符号表 _Z4funci x y b.o 75

76 代码的连接与执行 连接深 将各段合并度 将符号表综合 根据重定位信息, 确定代码中用到的全局地探址索 代码的执行 操作系统首先将文件从磁盘读入, 初始化各段 一些静态数据就在此时被初始化 从引导代码开始执行, 引导代码启动 main, main 返回后, 引导代码通知操作系统程序结束 76

77 小结与复习建议 主要内容 作用域与可见性 对象的生存期 数据的共享与保护 友元 编译预处理命令 多文件结构和工程 达到的目标 深入理解程序的结构 模块间的关系 数据共享 77

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式] 用户定义类型 User-defined Datatypes classes and structs 几何向量 (Geometry Vector) 二维平面上的向量由起点和终点构成 每个点包含两个坐标 (x, y), 因此一个向量需要四个实数表示 Start= (0.9,1.5) Start= (0.4,0.8) int main() { double xstart = 0.4; double xend

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

Chapter12 Derived Classes

Chapter12   Derived Classes 继 承 -- 派 生 类 复 习 1. 有 下 面 类 的 说 明, 有 错 误 的 语 句 是 : class X { A) const int a; B) X(); C) X(int val) {a=2 D) ~X(); 答 案 :C 不 正 确, 应 改 成 X(int val) : a(2) { 2. 下 列 静 态 数 据 成 员 的 特 性 中, 错 误 的 是 A) 说 明 静 态 数

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式] 函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)

More information

第七讲 继承与多态

第七讲  继承与多态 第 七 章 继 承 与 派 生 1 本 章 主 要 内 容 的 继 承 成 员 的 访 问 控 制 单 继 承 与 多 继 承 派 生 的 构 造 析 构 函 数 成 员 的 标 识 与 访 问 深 度 探 索 2 的 继 承 与 派 生 的 继 承 与 派 生 保 持 已 有 的 特 性 而 构 造 新 的 过 程 称 为 继 承 在 已 有 的 基 础 上 新 增 自 己 的 特 性 而 产 生

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

程序设计语言及基础

程序设计语言及基础 Chapter 10 Classes: A Deeper Look, Part 2 http://jssec.seu.edu.cn 杨明 yangming2002@seu.edu.cn OBJECTIVES To specify const (constant) objects and const member functions. To create objects composed of other

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 第十一讲 运算符重载 与类型转换 运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 为什么要运算符重载 预定义的运算符只针对基本数据类型, 若要对类的对象进行类似的运算, 需要重新定义运算符的功能 运算符重载实质就是函数重载 : 对已有的运算符赋予多重含义, 使得同一个运算符作用于不同类型的数据时导致不同的行为

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

Microsoft PowerPoint - 10 模板 Template.pptx

Microsoft PowerPoint - 10 模板 Template.pptx 模板 Tempalte 泛型编程的需要 Why Templates? 设想你对整数类型实现了一个排序算法 : void sort(int *is,int n); 用该函数可以对实 复数或工资单排序吗? 模板可以复用源代码 - 泛型编程. inline void Swap( int &x, int &y){ int t = x; x = y; y =t; inline void Swap(double

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.

More information

主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2

主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2 第四讲 函数 主要内容 函数的定义 声明与调用 函数间的参数传递 函数嵌套与内联函数 形参带缺省值的函数与函数重载 数据的作用域 预编译处理与多文件结构 C++ 系统函数 2 函数的定义 函数是程序设计中, 对功能的抽象, 是 C++ 的基本模块 C++ 程序是由函数构成的 ( 一个或多个函数 ) C++ 程序必须有且只能有一个 main 函数 函数的定义 函数头 类型标识符函数名 ( 形式参数表

More information

Microsoft PowerPoint - 04-Inheritance.ppt

Microsoft PowerPoint - 04-Inheritance.ppt 继承 派生与多态性 1 本章主要内容 类的继承与派生 类成员的访问控制 简单继承与多重继承 派生类的构造 析构函数 多态性 2 1 类的继承与派生 保持已有类的特性, 并在其基础上产生新的类, 称新类继承了已有类的特征, 或称已有类派生出新类 被继承的已有类称为基类 ( 或父类 ) 派生出的新类称为派生类 派生类将自动继承基类的所有特性 ( 属性和方法 ) 派生类可以定义新的特性 ( 属性和方法 )

More information

幻灯片 1

幻灯片 1 第三课类和对象 ( 封装 ) 互联网新技术在线教育领航者 1 内容概述 1. 封装的概念 2. 访问控制 3. 栈类的封装 4. 构造与析构 5.myString 构造函数 6. 构造与析构的次序 7. 类文件写法 8. 对象的内存 9.this 指针初探 10. 构造函数初始值列表 11. 拷贝构造和赋值运算符重载 12. 浅拷贝 13. 深拷贝 14. 成员函数内联 15. 友元 16.const

More information

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 实验 2 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 CRECT 类 1 CRect 类 设计矩形类, 包含 长度和宽度信息 基本构造函数 基础属性的访问接口 ( 读 / 写, Read/Write, Get/Set) 计算周长和面积 ( 注 : 基本构造函数, 一个无参数的默认构造函数, 以及一个初始化数据成员的构造函数如果数据成员的初始化有多种形式, 就提供多个构造函数

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf(%d, &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf(% 2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

untitled

untitled 1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Microsoft PowerPoint - L17_Inheritance_v4.pptx C++ Programming Lecture 17 Wei Liu ( 刘 威 ) Dept. of Electronics and Information Eng. Huazhong University of Science and Technology May. 2015 Lecture 17 Chapter 20. Object-Oriented Programming: Inheritance

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

untitled

untitled (encapsulation) 例 類 說 類 料 來 料 information hiding 念 (inheritance) 來說 類 類 類 類 類 類 行 利 來 (polymorphism) 不 類 數 不 1 2 3 4 類 類 不 類 不 類 5 6 7 // virtual 不見了 #include #include using namespace

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

面向对象进阶 对象的生存期 静态成员 友元关系 常对象与常成员 对象数组与对象指针 向量类 :vector 字符串类 :string 2

面向对象进阶 对象的生存期 静态成员 友元关系 常对象与常成员 对象数组与对象指针 向量类 :vector 字符串类 :string 2 第十讲 类与对象 (I) 面向对象进阶 面向对象进阶 对象的生存期 静态成员 友元关系 常对象与常成员 对象数组与对象指针 向量类 :vector 字符串类 :string 2 对象的生存期 与普通变量一样, 对象有静态和动态生存期 静态生存期 : 生存期与程序的运行期相同, 即一直有效 动态生存期 : 当对象所在的程序块执行完后即消失 全局对象 : 静态生存期 动态对象 : 动态生存期 3 类作用域

More information

Microsoft Word - 第7章 类与对象.docx

Microsoft Word - 第7章 类与对象.docx 第 7 章类与对象 案例 1 地址类 #include class Address char Name[21]; char Street[51]; char City[51]; char Postcode[10]; SetAddress(char *name,char *street,char *city,char *postcode); void ChangeName(char

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

幻灯片 1

幻灯片 1 信息科学技术学院 程序设计实习 郭炜微博 http://weibo.com/guoweiofpku http://blog.sina.com.cn/u/3266490431 刘家瑛微博 http://weibo.com/pkuliujiaying 1 信息科学技术学院 程序设计实习 郭炜刘家瑛 继承和派生 ( 教材 P215) 2 继承和派生的概念 继承 : 在定义一个新的类 B 时, 如果该类与某个已有的类

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

1 32 a + b a + b 2 2 a b a b 2 2 2 4a 12a + 9 a 6 2 4 a 12a + 9 a 6 ( 2a 3) 2 a 6 3 1 2 4 + 2 4 8 + 3 6 12 + 1 3 9 + 2 6 18+ 3 9 27 + 1 10 1 10 ax + by = 2 cx 7y = 8 1 2 1 4 1 8 1

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

Microsoft PowerPoint - 第06讲_继承.ppt [兼容模式]

Microsoft PowerPoint - 第06讲_继承.ppt [兼容模式] 程序设计实习 (I): C++ 程序设计 第六讲继承 上节内容回顾 三种运算符重载的实现方式 重载为普通函数 重载为成员函数 重载为友元 常见的运算符重载 流运算符 (>>

More information

相 应 功 能 (5) 再 将 Boy 类 作 为 Girl 类 的 友 元 类, 在 Boy 类 的 某 成 员 函 数 VisitGirl(Girl & ) 中 访 问 Girl 类 的 私 有 成 员, 观 察 编 译 器 给 出 的 信 息 ( 6 ) 删 除 两 个 类 中 的 函 数 V

相 应 功 能 (5) 再 将 Boy 类 作 为 Girl 类 的 友 元 类, 在 Boy 类 的 某 成 员 函 数 VisitGirl(Girl & ) 中 访 问 Girl 类 的 私 有 成 员, 观 察 编 译 器 给 出 的 信 息 ( 6 ) 删 除 两 个 类 中 的 函 数 V 面 向 对 象 程 序 设 计 及 C++ 课 程 实 验 教 学 大 纲 课 程 编 号 : B030001S 课 程 名 称 : 面 向 对 象 程 序 设 计 及 C++ 课 内 总 学 时 : 3 上 机 实 验 学 时 : 8 一 实 验 课 程 的 性 质 目 的 和 任 务 性 质 : 本 实 验 课 程 是 本 科 理 工 科 各 专 业 学 生 的 通 识 基 础 课, 该 实 验

More information

第三章 函数

第三章 函数 第三章函数 中国科大 黄章进 本章主要内容 函数的定义和调用 函数间的参数传递 内联函数 带默认形参值的函数 函数重载 C++ 系统函数 深度探索 2 函数的声明与使用 函数的定义 函数是面向对象程序设计中, 对功能的抽象 函数定义的语法形式 类型标识符函数名 ( 形式参数表 ) { 语句序列 若无返回值, 写 void 是被初始化的内部变量, 寿命和可见性仅限于函数内部 3 return 语句 函数的声明与使用函数的定义

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

4. if 与 else 在使用过程中为避免嵌套出现二义性,C++ 中规定与 else 子句配对的是 ( ) A. 其之前最近的 if 语句 B. 其之前最近且尚未配对的 if 语句 C. 缩排位置相同的 if 语句 D. 其之后最近的 if 语句答案 :B 解析 :C++ 中规定与 else 子句

4. if 与 else 在使用过程中为避免嵌套出现二义性,C++ 中规定与 else 子句配对的是 ( ) A. 其之前最近的 if 语句 B. 其之前最近且尚未配对的 if 语句 C. 缩排位置相同的 if 语句 D. 其之后最近的 if 语句答案 :B 解析 :C++ 中规定与 else 子句 计算机 -C++ 程序设计 ( 本科 ) 2017 年 10 月真题及答案解析 单项选择题 : 本大题共 20 小题 每小题 1 分, 共 20 分 1. 按照标识符的要求, 不能组成标识符的符号是 ( ) A. 连接符 B. 下划线 C. 大小写字母 D. 数字字符答案 :A 解析 : 组成标识符的符号可以是大小写字母 下划线和数字, 且数字不能打头 2. 下列输出语句中, 正确的是 ( ) A.

More information

1.加入党组织主要经过哪些程序?

1.加入党组织主要经过哪些程序? 内 部 资 料 注 意 保 存 厦 门 大 学 发 展 党 员 工 作 常 用 文 书 中 共 厦 门 大 学 委 员 会 组 织 部 编 印 2014 年 10 月 4 发 展 党 员 工 作 流 程 图 一 申 请 入 党 二 入 党 积 极 分 子 的 三 发 展 对 象 的 确 定 四 预 备 党 员 的 接 收 五 预 备 党 员 的 教 育 确 定 和 培 养 教 育 和 考 察 考 察

More information

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 前 言 在 计 算 机 统 考 的 四 门 专 业 课 中, 最 难 拿 高 分 的 就 是 数 据 结 构 但 是 这 门 课 本 身 的 难 度 并 不 是 考 生 最 大 的 障 碍, 真 正 的 障 碍

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 类和对象 Ⅱ 常见考点 常对象的使用方法 常数据成员和常成员函数的使用方法 mutable 数据成员的特点 构造函数中初始化列表的使用方法 explicit 关键字的作用 子对象的使用方法 使用类前向引用声明的情况 子对象构造函数的设计和执行次序 静态子对象的特点 嵌套类和局部类的设计方法与作用 3.1 常对象和常对象成员 3.1.1 要点归纳 1. 常对象常对象是指对象常量, 其一般定义格式如下

More information

Strings

Strings Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A

More information

論鄭玄對《禮記‧月令》的考辨

論鄭玄對《禮記‧月令》的考辨 19997 183-196 論 鄭 玄 對 禮 記 月 令 的 考 辨 183 論 鄭 玄 對 禮 記 月 令 的 考 辨 一 問 題 的 背 景 20b 8a 1 472 24 20a 33 7a 2 3 1 35 60 64 472 240241 2 1a 3 19b 184 4 5 二 鄭 玄 考 辨 月 令 成 書 時 代 及 來 源 的 論 證 65 4 20b 282 5 235244

More information

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D> 程序设计实习 (I): C++ 程序设计 第二讲类和对象 (1) 面向对象的程序设计 面向对象的程序设计方法, 能够较好解决结构化程序设计中出现的问题 面向对象的程序 = 类 + 类 + + 类 设计程序的过程, 就是设计类的过程 2 面向对象的程序设计 面向对象的程序设计方法 : 将某类客观事物共同特点 ( 属性 ) 归纳出来, 形成一个数据结 构 ( 可以用多个变量描述事物的属性 ); 将这类事物所能进行的行为也归纳出来,

More information

9.2 构造函数和析构函数 类的组合 结构体与联合体 类的 UML 描述 第十讲 类与对象 (II) 面向对象进阶 对象的生存期 静态成员 友元关系

9.2 构造函数和析构函数 类的组合 结构体与联合体 类的 UML 描述 第十讲 类与对象 (II) 面向对象进阶 对象的生存期 静态成员 友元关系 C++ 笔记 ( 草稿 ) 潘建瑜 (jypan@math.ecnu.edu.cn) 第二讲 C++ 编程基础... 1 2.1 C++ 语言概述... 1 2.2 C++ 编程基础... 2 2.3 C++ 简单输入输出... 4 第三讲 选择与循环... 5 3.1 关系运算与逻辑运算... 5 3.2 选择结构... 5 3.3 循环结构... 6 第四讲 函数... 8 4.1 函数的声明

More information

2014教师资格证考试《中学综合素质》仿真模拟题(4)

2014教师资格证考试《中学综合素质》仿真模拟题(4) 2016 教 师 资 格 证 考 试 中 学 综 合 素 质 仿 真 模 拟 题 (4) 一 单 项 选 择 题 ( 在 每 小 题 列 出 的 四 个 备 选 项 中 只 有 一 个 是 符 合 题 目 要 求 的, 错 选 多 选 或 未 选 均 不 得 分 本 大 题 共 29 小 题, 每 小 题 2 分, 共 58 分 ) 1. 教 师 要 具 有 符 合 时 代 特 征 的 学 生 观

More information

第六讲 数组、指针与字符串

第六讲 数组、指针与字符串 第六章数组指针与字符串 本章主要内容 数组 指针 动态存储分配 指针与数组 指针与函数 vector 的基本用法 字符串 深度探索 2 数组的概念 数组是具有一定顺序关系的若干相 同类型变量的集合体, 组成数组的变量 称为该数组的元素 数组属于构造类型 数组3 数组名的构成方法与一般变量名相同 数组一维数组的声明与引用 一维数组的声明 类型说明符数组名 [ 常量表达式 ]; 例如 :int a[10];

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

模板

模板 制作人 : 张刚 目录 类和对象 面向对象程序设计基本特征 类的声明 构造方法 成员变量和方法 封装 继承 多态 包 访问控制 final static 抽象类和接口 内部类 沈阳工业大学软件学院 Java 课程教研组 Page 2 核心知识点 类 对象 三个基本特征 类的基本结构 成员变量 构造方法 成员方法 类实例 对象创建和操作 沈阳工业大学软件学院 Java 课程教研组 Page 3 1.

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

untitled

untitled 1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 计算概论 A 课程程序设计部分 C++ 语言基本成分 数据成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 再谈, 我们的进度安排 我们的学习过程 感性理性函数指针等 数据成分运算成分控制成分数组字符串 结构化的程序递归 传统学习过程 数据类型与表达式 输入输出 关系运算 控制语句 函数数组指针结构体 作业练习 感性认识作业练习 ( 以抄程序为主 ) 正常作业练习

More information

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

第5章修改稿

第5章修改稿 (Programming Language), ok,, if then else,(), ()() 5.0 5.0.0, (Variable Declaration) var x : T x, T, x,,,, var x : T P = x, x' : T P P, () var x:t P,,, yz, var x : int x:=2. y := x+z = x, x' : int x' =2

More information

Microsoft Word - chap10.doc

Microsoft Word - chap10.doc 78 10. Inheritance in C++ 我 們 已 介 紹 了 物 件 導 向 程 式 的 第 一 個 主 要 特 性, 即 程 式 可 模 組 化 成 為 類 別 ( 物 件 ), 類 別 具 有 資 料 封 裝 的 特 性 接 下 來 我 們 要 介 紹 物 件 導 向 程 式 的 另 一 個 主 要 特 性, 那 就 是 類 別 具 有 繼 承 的 功 能 繼 承 就 是 重 複

More information

zyk00168ZW.PDF

zyk00168ZW.PDF () 0 4 5 (km).5 4 5.5 7 8.5 () 0 4 5 (km) 4 4.5 5 5.5 6 6.5 y5x. y0. 5x4 x y 9 5x y x y 9 5x y x x 6 x y. 55 y5x. y0. 5x4 x 0 x x y y y 5 x x x 4 y y y 5 () x y () y x x 4y 0 4x y x 0 0.4 y 0.5 0 5x y

More information

C++ Programming Style.docx

C++ Programming Style.docx C++ Programming Style (C++ 编码规范 ) Last Modified: 2014-11-18 Hongfei Yan 目的 书写格式规范 标示符命名规范 文档规范 模块组织规范 一般性原则 = 目的 = 增强代码的可读性, 从而使得系统具有更少的 Bug 和更高的健壮性 涉及到程序的书写格式 (Code appearance/layout) 标示符命名 (Naming) 文档规范

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

提纲 1 联编与多态性 2 用虚函数实现多态 3 虚函数的工作原理 4 纯虚函数与抽象类 5 总结与思考 Dongke Sun (Southeast University) C++ Programming and Algorithms April 12, / 36

提纲 1 联编与多态性 2 用虚函数实现多态 3 虚函数的工作原理 4 纯虚函数与抽象类 5 总结与思考 Dongke Sun (Southeast University) C++ Programming and Algorithms April 12, / 36 程序设计与算法语言 虚函数 C/C++ Programming and Algorithms Virtual Function Dongke Sun ( 孙东科 ) dksun@seu.edu.cn 东南大学机械工程学院 School of Mechanical Engineering Southeast University April 12, 2018 提纲 1 联编与多态性 2 用虚函数实现多态

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第二讲 C++ 编程基础 主要内容 C++ 语言概述 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境 C++ 编程基础 数据的简单输入输出 2 C++ 语言概述 C++ 的发展 - C++ 是从 C 语言发展演变而来, 可以看成是 C 的超集 - 1980 年由 Bjarne Stroustrup 开发创建 - 1983 年正式取名为 C++,1989 年开始 C++ 的标准化工作

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

材 料 目 录 1. 党 员 发 展 及 转 正 流 程 图 2. 申 请 入 党 人 员 基 本 信 息 及 培 养 记 录 表 3. 思 想 汇 报 传 阅 及 意 见 反 馈 表 4. 入 党 积 极 分 子 培 养 考 察 表 5. 政 治 审 查 函 调 信 模 板 6. 政 治 审 查

材 料 目 录 1. 党 员 发 展 及 转 正 流 程 图 2. 申 请 入 党 人 员 基 本 信 息 及 培 养 记 录 表 3. 思 想 汇 报 传 阅 及 意 见 反 馈 表 4. 入 党 积 极 分 子 培 养 考 察 表 5. 政 治 审 查 函 调 信 模 板 6. 政 治 审 查 发 展 党 员 工 作 的 流 程 及 工 作 模 板 为 了 贯 彻 落 实 学 校 关 于 发 展 党 员 工 作 的 若 干 规 定, 进 一 步 规 范 发 展 党 员 中 的 工 作 环 节, 细 化 工 作 要 求, 方 便 二 级 党 组 织 及 党 支 部 具 体 工 作 中 执 行 有 关 规 定, 学 校 党 委 组 织 部 参 照 市 委 教 育 工 委 北 京 高 校 发 展

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

竞赛报名与报名审核

竞赛报名与报名审核 2014 年 全 国 职 业 院 校 技 能 大 赛 高 职 组 广 东 省 选 拔 赛 工 程 造 价 基 本 技 能 赛 项 竞 赛 指 南 主 办 : 广 东 省 教 育 厅 承 办 : 广 州 城 建 职 业 学 院 协 办 : 广 联 达 软 件 股 份 有 限 公 司 目 录 一. 竞 赛 的 几 个 重 要 时 间...1 二. 竞 赛 时 间 地 点 及 费 用...1 ( 一 )

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 函數樣板 (Function Template) 與 類別樣板 (Class Template) 講師 : 洪安 1 資料結構與 C++ 程式設計進階班 為何需要通用函數? (1/2) int abs(int x) { return (x>0)?x:-x; 取名困難不好記 float fabs(float x) { return (x>0)?x:-x; complex cabs(complex x)

More information

婚姻與生育初探

婚姻與生育初探 2002 10 2002 10 2592 49 43 2549 1 1. 3.56.5 2.6% 3.76.3 35% 65% 3.5:6.5 35 46 39.3%60.7% 35 35 3 55 18-21 22-25 26-30 31-35 36-40 41-45 46-50 39.6 42.2 36.4 40.7 34.2 34 36.3 60.4 57.8 63.6 59.3 65.8 66

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

PowerPoint Presentation

PowerPoint Presentation C++ 程序设计 第 7 章类 计算机学院黄章进 zhuang@ustc.edu.cn 内容 类 7.1 定义抽象数据类型 7.2 访问控制与封装 7.3 类的其他特性 7.4 类的作用域 7.5 构造函数再探 7.6 类的静态成员 2 定义抽象数据类型 C++ 中使用类 (class) 定义自己的数据类型 类的基本思想是数据抽象 (data abstraction) 和封装 (encapsulation)

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

大侠素材铺

大侠素材铺 编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式

More information

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

More information

目录 C++ 基本的程序设计... 1 C++ 对 C 的扩充... 3 类和对象... 5 继承和派生... 9 多态性 函数模板和类模板 输入输出流

目录 C++ 基本的程序设计... 1 C++ 对 C 的扩充... 3 类和对象... 5 继承和派生... 9 多态性 函数模板和类模板 输入输出流 面向对象程序设计 上机实验指导书 临沂大学汽车学院 编写 : 韩晓翠 2015 年 8 月修订 1 目录 C++ 基本的程序设计... 1 C++ 对 C 的扩充... 3 类和对象... 5 继承和派生... 9 多态性... 11 函数模板和类模板... 13 输入输出流... 14 2 C++ 基本的程序设计 一 目的 : 1 熟悉 VC++ 环境的基本命令和功能键 ; 2 掌握 C++ 程序的三大基本结构的输入

More information

Ps22Pdf

Ps22Pdf A B C D A B C D A B C D a a b c x x x x x x x x x x x x x x x x x a b c x a x x x x x x x x x x a b a b a b x x x x x x x x x x x x A B C A B C A B A B A x B C x D A B C a b c a b x x x x x x x A B A

More information

94 (( )) 1 2 3 4 5 7 9 11 12 13 14 17 19 20 21 22 23 24 25 26 27 28 29 30 32 34 ( ) () (/ ) (/ ) (/ 100) 256 5,034 209,647 710,954 360,925 350,029 4,047.66 3.39 103.11 256 5,034 214,574 717,811 363,149

More information