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);

C++ day01-C++的函数和对象的更多相关文章

  1. JavaScript学习笔记(二)——闭包、IIFE、apply、函数与对象

    一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...

  2. JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象

    一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...

  3. 深入理解javascript原型和闭包(2)——函数和对象的关系

    上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断. var fn = function () { }; co ...

  4. javascript 函数与对象

    javascript中的函数是非常重要的概念,也是比较难于理解的一个知识点! 下面就来聊聊函数: JS基于对象:什么是基于对象呢?简单的说所有代码都是"对象"; 比如函数: fun ...

  5. ES5——函数,对象,方法,this

    JS由表达式和语句组成 表达式:计算出一个值,但并不进行任何操作,不改变计算机运行状态 语句:包括 声明语句,赋值语句,控制结构 函数,对象,方法,this 数组和对象:是两个非常重要的数据类型 函数 ...

  6. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  7. 深入理解js——函数和对象的关系

    函数也是对象,但是函数却不像数组--数组是对象的一种,它是对象的一个子集.函数和数组之间不是单纯的包含与被包含的关系,它们之间有点像鸡生蛋蛋生鸡的逻辑. 来例子:function Fn(){ this ...

  8. JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype

    一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); // ...

  9. php的引用&(就是在变量或者函数、对象等前面加上&符号)

    官方文档: 1.引用是什么:http://www.php.net/manual/zh/language.references.whatare.php 2.引用做什么:http://www.php.ne ...

  10. 浅谈JavaSccript函数与对象

    函数 解剖函数 function One(leve1 , leve2){ //code return leve1+leve2 } 注释: 形参不需要加上类型: return语句为可选,没有return ...

随机推荐

  1. Appium新版本遇到的问题,不能通过 name 去定位元素抛 Message: Locator Strategy 'name' is not supported for this session

    环境: 1.Appium: 1.15.1 2.Python: 3.7.0 3.Selenium: 3.141.0 4.IDE: Pycharm 5.PC:Windows 10 问题:在 Pycharm ...

  2. 3.华为路由交换技术_IP子网划分

    IP地址组成 地址包含两部分:网络号+主机号 比如:深圳市(网络号)宝安区坂田华为基地A10(主机号) 约定黄色部分为网络号. D类地址作为组播,E类地址保留使用(用于研究) 路由器只关心IP地址的网 ...

  3. centos安装jdk10

    下载一个jdk10文件到linux : wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=ac ...

  4. linux下录屏和回放工具script和scriptreplay

    读书是一个长见识的过程,以前偶尔会用到录屏的工具,很少用想系统的学习一下.最近看了linux shell脚本攻略,发现很多新东西是以前自己没有接触到的.比如,这个非常好用的录屏工具:script,这次 ...

  5. css样式优先级计算规则

    css样式的优先级分为引入优先级和声明优先级. 引入优先级 引入样式一般分为外部样式,内部样式,内联样式. 外部样式:使用link引入的外部css文件. 内部样式:使用style标签书写的css样式. ...

  6. 16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程

    16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud ...

  7. execjs使用时异常

    一.异常信息(...gbk.....) UnicodeDecodeError: 'gbk' codec can't decode byte 0xa1 in position 26: illegal m ...

  8. 关于MySql 数据库InnoDB存储引擎介绍

    熟悉MySQL的人,都知道InnoDB存储引擎,如大家所知,Redo Log是innodb的核心事务日志之一,innodb写入Redo Log后就会提交事务,而非写入到Datafile.之后innod ...

  9. FCC---Use the CSS Transform scale Property to Change the Size of an Element

    To change the scale of an element, CSS has the transform property, along with its scale() function. ...

  10. Python 類和對象 Class vs Object

    類別定義 class 類別名: 例如: >>> class Point:...     x = 0.0...     y = 0.0 1. 宣告 >>> p1 = ...