`
bsr1983
  • 浏览: 1117540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一章 认识C++的对象

 
阅读更多

第一章 认识C++的对象

1.1 初识C++的函数和对象

一般称现实世界中客观存在的事物为对象。

1.混合型语言

C++程序以.cpp作为文件扩展名,并且必须有一个且只能有一个名为mian(不是C++的关键字)的主函数。真正的面向对象的语言没有主函数,C++保留了这个面向过程的主函数,所以称之为混合型语言。

2.灵活的注释方式

3.使用输出和输入对象

C++将数据从一个对象流向另一个对象的流动的抽象称为“流”。从流中获取数据的操作称为提取操作。向流中添加数据的操作称为插入操作。

cin用来处理标准输入,即键盘输入。cout用来处理标准输出,即屏幕输出。

4.使用命名空间

所谓命名空间(namespace)是一种将程序库名称封装起来的方法,它提高了程序的性能和可靠性。

C++新标准就是将标准类库中的头文件与一般的头文件(需要使用扩展名“.h”)区分开来。当然,也可以自己定义符合标准库的头文件,使用这种头文件时,也需要同时使用命名空间语句。

如果仍然使用C库中的头文件,则需要使用扩展名“.h”形式,例如<math.h><stdio.h>。如果使用C++提供的头文件,则不需要使用扩展名“.h”,例如,<string>。注意C++库中替代C库中的头文件的正确名称,例如可以使用<cmath>替代<math.h>

5.对象的定义及初始化

定义对象包括为它命名并赋予它数据类型。

6.函数原型及其返回值

函数都需要有类型说明。int main() 指出main是整数类型,返回值由return后面的表达式决定,且表达式的值必须与声明函数的类型一致。

C++使用变量的基本规则是:必须先声明,后使用,对函数调用也是如此。

7.const修饰符和预处理程序

C语言一般使用"#define"定义常量,在C++中,建议使用const代替宏定义。const是放在语句定义之前的,因此可以进行类型判别。

用关键字const修饰的标识符是一类特殊的常量,称为符号常量,或const变量。使用const允许编译器对其进行类型检查并可改善程序的可读性。

C++语言忍忍可以使用宏定义。无参数的宏作为常量,而参数的宏则可以提供比函数更高的效率。但预处理只是进行简单的文本代替而不进行语法检查,所以会存在一些问题。

因为被const修饰的变量的值在程序中不能被改变,所以在声明符号常量是,必须对符号常量进行初始化,除非这个变量使用extern修饰的外部变量。

C++语言预处理程序不是C++编译程序的一部分,它负责分析处理几种特殊的语句,这些语句被称为预处理语句。顾名思义,预处理程序对这几种特殊语句的分析处理是在编译程序的其他部分之前进行的。为了与一般的C++程序语句相区别,所有预处理语句都以位于行首的符号“#”开始。

预处理语句有3种,分别是宏定义、文件包含和条件编译。

预处理程序把所有出现的、被定义的名字全部替换成对应的“字符序列”。#define中的名字与C++中的标识符有相同的形式,为了区别,往往用大写字母来表示(标识符用小写字母),这也适合const语句。

文件引用使用双引号还是尖括号,其含义并不一样。采用尖括号引用系统提供的包含文件,C++编译系统将首先在C++系统设定的目录中寻找包含文件,如果没有找到,就到指定的目录中去寻找。采用双引号引用自己定义的包含文件(一般都放在自己定义的指定目录中),这将通知C++编译器在用户当前的目录下或指定的目录下寻找包含文件。指定的目录不必在同一个逻辑盘中。

8.程序运行结果

9.程序书写格式

1.2 认识C++语言面向过程编程的特点

C++语言的标准模板库(Standard Templete Library,STL)提供了与要操作的元素类型无关的算法,不仅使许多复杂问题迎刃而解,而且也将许多面向对象的程序设计问题转化成基于对象的面向过程编程。

1.2.1 使用函数重载

C++允许为一个函数定义几个版本,从而使一个函数名具有多种功能,这称为函数重载。

1.2.2 新的基本数据类型及其注意事项

void是无类型标识符,只能声明函数的返回值类型,不能声明变量。C++语言还比C语言多了bool(布尔)型。C++标准只限定intshort至少要有16位,而long至少32位,short不得长于intint不得长于long

地址运算符“&”用来取对象存储的首地址。

C++语言中的整数常量有4种类型:十进制常量、长整型常量、八进制常量和十六进制常量,并用前缀和后缀进行分类标识。

1.2.3 动态分配内存

在使用指针时,如果不使用对象地址初始化指针,可以自己给它分配地址。对于值存储一个基本类型数据的指针,申请的方式如下:

new 类型名[size]       //申请可以存储size个该数据类型的对象

不再使用时,简单地使用“delete指针名”即可释放已经申请的存储空间。

1.2.4 引用

别名的地址就是原来对象的地址,选定命名时使用“引用”运算符“&”,再选用数据类型与之配合。引用的声明方式如下:

数据类型别名=对象名;

所谓“引用”就是将一个新标识符和一块已经存在的存储区域相关联。因此,使用引用时没有分配新的存储区域,它本身并不是新的数据类型。

引用通常用于函数的参数表中或者作为函数的返回值。对引用实质性的理解应抓住如下两点:

(1)引用实际上就是变量的别名,使用引用就如同直接使用变量一样。引用与变量名在使用的形式上是完全一样的,引用只是作为一种标识对象的手段,不能直接声明对数组的引用,也不能声明引用的引用。

(2)引用的作用与指针有相似之处,它会对内存地址上存在的变量进行修改,但它不占用新的地址,从而节省开销。

1.2.5 对指针使用const限定符

可以用const限定符强制改变访问权限。

1.左值和右值

左值是指某个对象的表达式。

2.指向常量的指针

指向常量的指针是在非常量指针声明前面使用const,例如:

const int *p;

它告诉编译器,“*p”是常量,不能将“*p”作为左值进行操作,即限定了“*p=”的操作,所以称为指向常量的指针。

3.常量指针

const限定符放在*号的右边,是使指针本身称为一个const指针。

int x=5;

int * const p=&x

不能改变p的指向,但可以通过间接引用运算符“*”改变其值,例如语句“*p=56;”将上面的x的值改变为56

4.指向常量的常量指针

也可以声明指针和指向的对象都不能改动的“指向常量的常量指针”,这时必须要初始化指针。例如:

int x=2;

const int * const p=&x;

告诉编译时,*pp都是常量,都不能作为左值。

1.2.6 泛型算法应用于普通数组

所谓泛型算法,就是提供的操作与元素的类型无关。

1.2.7 数据的简单输入输出格式

C++提供了两种格式控制方式:一种是使用iso _base类提供的接口;另一种是使用一种称为操控符的特殊函数,它的特点是可直接包含在输出和输入的表达式中,因此更为方便,不带形式参数的操控符定义在头文件<iostream>中,带形式参数的操控符定义在头文件<iomanip>中。使用它们时,一是要正确包含它们,二是只有与符号“<<”或“>>”连接时才起作用,三是无参数的操控符函数不能带有“()”号。

1.3 程序的编辑、编译和运行的基本概念

C++语言写成的程序称为源程序,源程序必须经过C++编译程序翻译成机器语言才能执行。要得到一个用C++语言设计的、名为myapp.exe的可执行文件,其过程可分为如下几步:

(1)先使用编辑器编辑一个C++程序mycpp.cpp,又称其为C++的源程序。

(2)然后使用C++编译器对这个C++程序进行编译,产生文件mycpp.obj

(3)再使用连接程序(又称Link),将mycpp.obj变成mycpp.exe

所谓集成环境,就是将C++语言的编辑、编译、连接和运行程序都集成到一个综合环境中。

分享到:
评论

相关推荐

    Visual C++程序设计案例教程-张荣梅-源代码-第一章

    通过深入学习《Visual C++程序设计案例教程》的第一章,读者将建立起对C++编程的初步认识,并为后续章节的学习打下坚实的基础。在实践中不断探索和积累经验,将是成长为一名优秀C++程序员的关键步骤。

    c++程序设计 第一章 c++初步认识

    本章主要介绍了C++的基本概念和初步认识。 首先,C++对C语言的“增强”体现在两个方面:一是对C语言的功能进行了扩充,增加了更多的数据类型、控制结构和库函数;二是引入了面向对象编程(OOP)机制,这包括类...

    《深度探索C++对象模型》(Stanley B·Lippman[美] 著,侯捷 译)

    本书重点:探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序...

    C++课程作业从第一章到第七章

    第一章“C++的初步认识”是学习的起点,主要介绍了C++的历史背景、特点以及它与C语言的关系。C++是在C语言的基础上扩展的,增加了面向对象的特性。这一章可能包括了基本的数据类型、变量、常量、控制结构(如if语句...

    c++语言课程设计(第四版)课后习题

    例如第一章:1-1 简述计算机程序设计语言的发展历程。 解: 迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。 1-2 面向对象的编程...

    信息学奥赛一本通(第5版)PPT课件 第一部分 C++语言 第1章 初识C++语言(C++版)-2节

    本章“初识C++语言”是针对初学者设计的入门篇,旨在帮助读者建立起对C++编程的基础认识。在这一章节中,我们将深入探讨以下几个关键知识点: 1. **C++的历史与特点**:C++是由C语言发展而来,由Bjarne Stroustrup...

    visual C++范例大全(孙皓)第一章

    2. **C++语言基础**:C++是面向对象的编程语言,第一章可能会涵盖变量、数据类型、运算符、控制结构(如if语句和循环)、函数等基础知识。 3. **MFC库介绍**:MFC是微软为Windows平台开发应用程序提供的一套类库,...

    C++PrimerPlus6中文版第四章程序

    这一章的学习对于初学者来说至关重要,因为它奠定了后续深入学习的基础。 1. **变量与数据类型**:在C++中,变量是用来存储数据的容器。第四章会介绍如何声明变量,以及不同类型的变量,如整型(int)、浮点型...

    C++ Primer Plus 编程练习源码工程 第12章

    在本资源中,我们主要关注的是"C++ Primer...这个源码工程提供了一个很好的机会,让你亲手编写和调试代码,加深对C++面向对象特性的认识。在参考和学习这些练习时,记得要动手实践,因为实践是掌握编程知识的最好方式。

    C++的课件C++课件

    1. **第1章 初步认识C++和实例系统** 这一章主要介绍C++的历史、特点以及它与C语言的区别。通过实例,让学生了解C++的基本语法和程序结构,包括变量声明、数据类型、运算符和控制流程(如if语句和循环)。 2. **第...

    C++程序设计(谭浩强)PDF扫描版第2卷(共3卷)

    C++程序设计 扫描版,谭浩强编著,清华大学出版社,2004年6月第一版。 注意:其他两卷在本网页下面我的其它资源里可以找到 内容简介 C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也...

    C++程序设计(谭浩强)PDF扫描版第3卷(共3卷)

    C++程序设计 扫描版,谭浩强编著,清华大学出版社,2004年6月第一版。 注意:其他两卷在本网页下面我的其它资源里可以找到 内容简介 C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也...

    深入.NET平台和C#编程【第一章】

    通过学习《深入.NET平台和C#编程》的第一章,你将建立起对.NET Framework和C#的初步认识,为后续更高级的主题打下坚实基础。无论是创建桌面应用、Web应用还是移动应用,这都是你成为.NET开发者的必经之路。在实践中...

    零基础学VC第1章 Visual C++6

    通过《零基础学VC第1章》的学习,你将对Visual C++6有全面的认识,为后续的编程之旅打下坚实的基础。记住,实践是最好的老师,不断动手编写代码,才能真正掌握这门语言。祝你在编程的世界里探索无尽的乐趣!

    【尚德教材】C++程序设计(全国)的副本1

    第一章“认识C++的对象”中,首先介绍了C++中的基本元素——对象,这是理解面向对象编程的关键。模块一“认识C++的函数和对象”讲解了函数作为代码复用的手段以及对象作为数据和行为封装的载体。模块二“认识C++面向...

    C++自考电子教案PPT

    第一章的初步认识中,强调了C++与C语言的联系和区别,特别是C++引入的对象概念和C语言中的变量概念的区别。同时,课程还涵盖了C语言回顾,如变量声明(如`int x;`),语句控制(如`if-else`,`for`,`while`),数组...

    从零开始学C++

    这一章是入门者了解编程世界的起点,将帮助读者建立起对编程的基本认识和理解。 第2章通常会深入讲解C++的基础语法,如变量、数据类型、运算符、流程控制语句(如if-else、switch-case、for、while)。这些是编程中...

    第一章 认识Windows应用程序.doc

    《第一章 认识Windows应用程序》 Windows应用程序是操作系统上的交互式程序,它们为用户提供图形用户界面(GUI)和控制台接口。本章主要探讨三种类型的Windows应用程序:控制台应用程序、图形用户界面(GUI)API...

    C++标准程序库1-7章

    第一章通常介绍C++标准库的基本理念和组织结构,让读者对库的全貌有一个宏观的认识。这一章可能涵盖STL(Standard Template Library,标准模板库)的核心概念,如模板、泛型编程以及STL的主要组件。 第二章则深入到...

Global site tag (gtag.js) - Google Analytics