C++的函数和对象

1.1

1 混合型语言

  c++以.cpp为文件扩展名,有且只有一个名为main的主函数,因保留了这个面向过程的主函数,所以被称为混合语言

2 注释方式 。

 C++的注释方式有两种,一下所列第一种常用于单行使用,第二种可灵活运用于单行和多行。

  1  从 "//" 开始到本行结束, 如// ...........

  2 从 “/*”  开始,到 “*/"结束,如 /* Hello,World! */

3  输入输出对象

  1 提取操作: 用提取操作符 “>>" 从 cin 输入流中提取字符,如:cin>>  a.x;

  2 插入操作:用插入操作符" << " 向cout 输出流中插入字符,如:cout << "We" ; cout <<endl;

  3 使用标准输入(键盘输入)cin 及标准输出(屏幕输出)cout 前,要在主函数前使用#include<istream> 将C++输入输出库头文件iostream 将其包括。

  4 换行操作:用语句cout <<endl ;或 cout << "\n"; 实现,其中endl 可以插在流的中间。

如:cout << a.x << endl << a.y << endl;

4 使用命名空间

  C++的头文件两种方式,这两种效果一样, 区别是加 .h可以省略using namespace std;    不加不可以省略。否则执行错误。

  1 #include<iostream.h>    //包含头文件

  2 #include<iostream>

  using namespace std;

5 对象的定义和初始化

  定义对象包括为它命名并赋予它数据类型,一般即使初值只用来表示该对象尚未具有真正意义的值,也应将每个对象初始化。

C++中利用构造函数语法实现初始化,如:

int z(0);   //等同于 int z = 0;

6 函数原型及其返回值

  1 变量和函数的基本规则都是;

先声明,后使用.变量有时也可边声明便使用,但必须声明,否则出错。

  2 除构造函数与析构函数外,函数都需要有类型声明。 如int main(), 指出main 是整数类型,返回值由return 后面的表达式决定,且表达式的值必须与声明函数的类型一致。 (构造函数是用来申请空间的,析构函数是用来释放空间)

  3 C++ 函数有库函数(标准函数,引用时函数名外加 < > )和自定义函数( 引用时函数名外加 ”“ ) 两类。

7 const(常量)修饰符及预处理程序

  1 const 修饰符:用于定义符号常量。

C中一般使用宏定义 ”#define"定义常量,而C++ 中除此外,建议使用const代替宏定义,用关键字const修饰的标识符称为符号常量。

  #define BUFSIZE 100

const int BUFSIZE=100;

例子

#include<iostream.h>

#define PRICE 30 //常量,宏定义替换,在程序中保持不变。(不允许被改变) 和const int PRICE=30 是等价的

void main(void)

{ int num,total;     //定义变量,在内存中开辟空间。

num = 10;         // 变量赋值, 10为常量

total = num*PRICE;

cout << "total = " << total; //输出结果

}

常量定义也可使用构造函数的初始化方法如:

const int k(2);  // 等价于const int k = 2;

extern const int d;  //extern 修饰外部变量。

2 预处理程序

C++的预处理程序不是C++编译程序的一部分。

预处理语句有三种 :宏定义,文件包含(也成嵌入指令)和条件编译。

3 文件包含是指一个程序把另一个指定文件的内容包含进来,书写时可以使用引号也可以使用尖括号。

8 程序书写格式

C++ 的格式和C一样,都很自由,一行可以写几条语句,但也要注意一下规则,增加可读性。

9变量名的命名方法:

名了吗,数组名,函数名 ... 称为标识符

标识符只能由字母,数字,下划线这三种组成,且第一个字符必须为字母或下划线,长度不大于247 个字符。

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

  1 使用函数重载。

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

  假设有个函数max,分别具有以下函数原型;

      int max (int , int );  // 2个整型参数的函数原型

     int max (int , int, int ) ; // 3个整型参数的函数原型;

只要分别为不同参数的max 编制相应的函数体,就可以实现各种功能

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

1 void 是无类型标识符,只能声明函数的返回值类型

2 C++ 还比C多了 bool(布尔)型

3 C++ 只限定int 和short 至少要有16位,而 long 至少32位,short 不得长于int ,int不能长于long。

4 地址运算符 “&” 用来去对象存储的首地址,对于数组,则数组名就是数组的首地址。

例如 int x=56; 定义x   则语句cout << &x; 自动使用16进制输出。

5 C++ 中的常量分三种

1 第一种为符号常量

2 第二种为整数常量,有四种类型

3 第三种为浮点类型。

6 动态分配内存

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

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

  不再使用时,必须使用delete 指针名;来释放已经申请的存储空间。

  double *p;     //  声明double指针

  p= new double[3]      // 分配3个double 型数据的存储空间

  delete p;     // 释放已经申请的存储空间。

  2 C必须在可执行语句之前集中声明变量,而 C++ 可以在使用对象时在声明或定义

  3 C++为结构动态分配内存一般格式为:

指针名= new 结构名;    // 分配

delete  指针名;      //  释放

例如给书中例 1.1 的Point 结构指针分配内存;

p = new Point;

当不再使用这个空间时,必须delete p; 释放空间。

2 引用

1 引用简单的说,就是为现有的对象起个别名,别名的地址与引用对象的地址是一样的。

引用的声明方式为;

数据类型& 别名 = 对象名 ;

注意对象在引用前必须先初始化,另外声明中符合“&”的位置无关紧要,

比如int & a = x;  int & a = x; 和int & a=x; 等效。

例 : int x= 56;  // 定义并初始化x

int & a = x; // 声明a是x 的引用,二者地址相同

int & r = a ; // 声明r 是a的引用,二者地址相同

r=32  ;  // 改变r,则a和x 都同步变化。

2 对指针使用const限定符

  1 变量的指针,指向变量的指针变量,指针变量指向的变量

3 左值和右值

  左值是指某个对象的表达式,必须是可变的。

4 指向常量的指针 (const int *p = &x; "*p="的操作不成立)

指向常量的指针是在非常量指针声明前面使用const , 如:const int *p; 它告诉编译器,*p是常量,不能将*p作为左值进行操作,即限定了”*p=" 的操作,所以称为指向常量的指针。

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

1 数组中元素及位置的关系

2 数组不能作为整体输出

  3  对数组内容进行升幂,输出,反转和复制等操作需要包含头文件<algorithm>;对数组内容进行将幂和检索等操作需要包含头文件<functional>.

  4 假设一位数组 a和b 的长度均为Len,数据类型为Type,则对数组内容的相关操作和语句如下。

1 数据内容反转:

     reverse   (a, a+len);    //数组元素反转排列

    2 复制数组内容:

    copy (a, a+len,b); //将数组a的内容原样复制到数组b

    reverse_copy(a,a+len,b);

最新文章

  1. zabbix3.0.4监控mysql主从同步
  2. 请求管道与IHttpModule接口
  3. Wbemtest查询
  4. Scoket简介
  5. Dede 查询附加表
  6. jqGrid中多选
  7. dedecms导入编辑器
  8. hdu4888 Redraw Beautiful Drawings
  9. 用JavaScript 来将数字转换成字符。
  10. 安全体系(三)——SHA1算法详解
  11. 大话命令之--ss
  12. Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch
  13. 逆天的 GRUB
  14. Sql Server免域,异地备份
  15. Java中弹出对话框中的几种方式
  16. Oracle EBS APP-FND-02938 多组织例程初始化产品报错
  17. opencv学习笔记——minMaxIdx函数的含义及用法
  18. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改
  19. [ LDAP ] LDAP服务搭建及应用
  20. gitlab 优化

热门文章

  1. Linux禁用root用户
  2. [译]Vulkan教程(30)深度缓存
  3. laravel实现多模块
  4. Java 并发编程 | 线程池详解
  5. (六十一)c#Winform自定义控件-信号灯(工业)-HZHControls
  6. C# 使用WM_COPYDATA传输数据(两个窗体间通信)
  7. 第一篇随笔:用VB.NET搞点简单事情(1)
  8. PHP给图片加上图片水印和文字水印实例
  9. 上传图片到七牛云(客户端 js sdk)
  10. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之四:组织单位服务安装账号设置