第一部分 大纲说明
1课程性质、任务与目的
《C++语言程序设计》是中央电大计算机应用专业的一门专业基础课。主要任务是介绍C++语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。
2与其他课程的关系
《C++语言程序设计》的先修课是《计算机入门及 *** 作技能训练》和《计算机组成原理与汇编语言》,它们为本课程提供计算机硬软件基础知识,本课程又为《数据结构》等软件课程提供程序设计基础。
3课程特点
《C++语言程序设计》是一门实践性很强的课程,必须通过上机 *** 作才能掌握所学的知识,所以要特别强调讲授与上机 *** 作相结合,要保证学生有充分的上机条件。
4教学要求
教学要求在每一章教学内容之后给出,大体分为三个层次:了解、掌握和熟练掌握。它们的含义大致为:了解就是掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。
第二部分 媒体使用和教学过程建议
1学时分配
本课程共90学时,5 学分。录象、实验和面授各占36、36和18学时。
2多种媒体教材的说明及教学环节
本课程文字教材、实验教材及电视讲课均由中央广播电视大学统一提供。文字教材应包含所有教学内容,叙述要条理清楚,详略得当,注意对C++语言内容的取舍,所有程序都要上机调试通过,内容组织要深入浅出,适合自学;音像教材应突出重点和难点,二者可以相互补充配合,但电视讲课仍应以文字教材为主要依据。
面授应指导和帮助学生掌握重点,突破难点,分析编程的思路与方法,指出常见的错误。上机 *** 作应有实验教师指导。
3考核
本课程考核包括笔试和上机两部分。笔试由中央电大统一命题,上机考核由各地方 电大组织,上机合格者方可参加笔试。
第三部分 教学内容和教学要求
第一章 C++语言概述
(一) 教学内容
1 C++语言的简史与特点
2 一个简单的C++程序
3 程序的编辑、编译、链接和运行
(二) 教学要求
了解C++语言的特点及C++简单程序的构成,掌握C++程序的编辑、编译、链接和运行的过程。
第二章 基本数据类型与表达式
(一) 教学内容
1 C++数据类型概述
2 C++的基本数据类型(整型、字符型、枚举型、实型)
3 常值变量
4 宏定义的使用
5 *** 作符与数值表达式
6 关系运算符和逻辑运算符
7 关系表达式和逻辑表达式
8 表达式的副作用和表达式语句
9 typedef定义
(二) 教学要求
掌握整型、字符型、枚举型、实型等基本数据类型的概念以及typedef定义的使用,熟练掌握这些类型的常量和变量的使用及其运算 *** 作,熟练掌握关系运算符和逻辑运算符的使用、关系表达式和逻辑表达式的求值,了解运算符的优先级和结合性,以及表达式的副作用。
第三章 C++程序的流程控制
(一) 教学内容
1 用if语句实现的分支控制
2 用switch语句实现的多分支控制
3 用while语句实现的循环控制
4 用dowhile语句实现的循环控制
5 用for语句实现的循环控制
6 continue和break在循环控制中的作用
7 多重循环
8 goto语句
(二) 教学要求
熟练掌握if语句和switch语句的使用,会在程序中利用它们实现单分支或多分支控制。熟练掌握while,dowhile和for这三种循环语句的结构和执行过程,会在程序中利用它们实现单重或多重循环控制,掌握continue语句和break语句的作用。
第四章 数组
(一)教学内容
1 数组的基本概念:元素、下标、类型、维数
2 一维数组
3 二维数组和多维数组
4 字符数组与字符串
(二) 教学要求
掌握数组的基本概念,熟练掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。
第五章 C++函数
(一)教学内容
1 函数的定义
2 函数的调用与参数的传递
3 函数的原形与头文件
4 inline函数
5 函数的重载
6 变量的作用域与生存期
7 函数的作用域
8 函数模板
(二) 教学要求
掌握函数的定义,函数的原形,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握函数重载的使用方法,关键字inline的含义与使用,掌握变量的作用域与生存期,了解函数的作用域。
第六章 指针、引用和动态空间管理
(一)教学内容
1 指针概述
指针的概念:地址、指针类型、void指针、空指针
指针变量的定义和初始化
指针的间接访问:
判断一指针是否是空指针
2 指针 *** 作符与指针表达式
3 指针与数组(含指针数组应用:命令行参数)
4 指针与函数
5 指针与字符串
6 指针与自由空间
7 引用的概念及应用
(二) 教学要求
熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。
第七章 结构与联合
(一)教学内容
1 结构的基本概念
2 结构的定义与初始化
3 结构成员的访问和结构变量的赋值
4 结构与指针
5 结构与函数
6 结构与 *** 作符重载
7 联合的定义与使用
(二) 教学要求
掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数、 *** 作符重载的关系;掌握联合的概念,联合类型和变量的定义,联合成员的表示,联合在结构中的使用。
第八章 类与对象
(一) 教学内容
1 面向对象技术的基本概念
2 类定义的格式
3 类成员的访问属性
4 成员函数与this指针
5 构造函数与析构函数
6 类对象数据成员
7 友元函数与友元类
8 类的继承
9 类的多态性与虚函数
10 静态数据成员
11 类模板
(二) 教学要求
掌握类的概念,类类型的定义格式,类与结构的关系,类与 *** 作符重载,类的成员属性,类的封装性,类的继承性,构造函数和析构函数的作用,this指针的含义,类对象的定义,友元函数与友元类的作用;了解inline成员函数,静态数据成员,类的多态性与虚函数,类模板等内容。
第九章 C++流
(一) 教学内容
1 C++流概述
2 标准输入输出的预定义流对象: cin、cout、cerr、clog
3 文件流
4 针对内存字符串缓冲区的流
5 输入输出的格式控制
6 输入流专门 *** 作
7 输出流专门 *** 作
(二) 教学要求
掌握C++流的概念,标准预定义流对象cin,cout和cerr的含义,文件流的定义和使用,了解输入输出的格式控制及专门 *** 作。
第四部分 实验
实验是学习该课程的非常重要的教学环节,通过上机实验能够加深理解和巩固书本上所学的知识,能够提高动手 *** 作的能力以及分析问题和解决问题的能力。具体实验内容、实验要求和实验安排将在该课程的实验教材中给出,请各地教学班按照实验教材安排学生实验。
首先,如果在头文件中定义一个普通的函数,比如下面这样,肯定会在程序链接的时候报“ 重复定义 ”的错误。
那么如果我们想在头文件中定义一些常用的函数,一般做法是在函数前加“ inline ”关键字,这样就不会报“ 重复定义 ”的错误了,并且能够像函数一样被其他的c/cpp源码文件调用了。
这时候如果你在inline后面加入“static”关键字也是没问题的:
区别是: 加了static关键字后,每个调用它的c/c++源码文件都会有一个copy,即static其实是限制了函数的作用域在本源码文件内。
----------------------------------- 分割线 ----------------------------------------
那么另一个问题来了:如果我们在函数内部定义static变量时,会是怎么样的情况呢?
如果我们分别在1cpp和2cpp两个源码文件中分别调用这两个inline函数,可以通过结果看到区别。
程序运行结果:
可以看到: 如果在inline后加了static关键字,则在函数中定义的static变量则会在每一个源码调用文件中产生了一个拷贝,而没加static关键字的inline函数则会产生一个全局的static变量。
具体解释参考 https://stackoverflowcom/questions/185624/static-variables-in-an-inlined-function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)