C++基础复习

 一、 C++与C的比较:

C语言是一个结构化语言,它的重点在于算法和数据结构,C语言的设计首先要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到的输出(或实现过程(事物)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制。

所以C语言和C++的最大区别在于它们解决问题的思想不同,一个面向过程一个面向对象。

C++对C的“增强”,表现在六个方面:

  1、类型检测更为严格。

  2、增加了面向对象的机制。

  3、增加了泛型编程的机制(Template)

  4、增加了异常处理。

  5、增加了运算符重载。

  6、增加了标准库模板库(STL)。

 二、C++基础复习

1、 C++相比C多了个bool的基础类型,且由于C++引入标准库,有了string,其实与char * 一样的。此外提到的wchar_t 是wide character 占16位2个字节。

2、C++中输出语句,引入using namespaced std, 所以输出cout<<...<<endl; endl表示“\n”换行。

3、const常量,和java的final类似是不能修改的变量。

4、for(int i = 0 ; i<3 ; i++) 可以在循环的时候定义赋值。

5 new delete关键字。new与C中的malloc和java的new类似是申请分配内存的,返回对象申请的内存的首地址。 delete则是释放申请的空间。

  C: struct person *p =(person *)malloc(sizeof(person));

  C++: person p =new person ;

  释放控件:

  delete p;

6、&的用法:

  1、与操作,是二进制相与的位运算.10&1 = 0;

  2、表示内存的地址值。int a =3; int *p = &a;

  3、表示引用。例:

    int x= 10;

    int  &abc = x; // 相当于给x去了个别名abc,abc与x共用一块内存空间,改变abc的值 x的值也会改变。

    abc = 20;//x的值也会变成20;

7、占位符:

    newline        \n          alert(bell)      \a      single  quote  \‘

    vertical  tab     \v         question mark    \?

    carriage return       \r         double quote    \"

    horizontal      \t         backspace     \b

    formfeed      \r         backslash     \\      

8、C中引入的标准库如:vector、list集合。

时间: 10-31

C++基础复习的相关文章

温故知新,基础复习(快速排序及优化)

温故知新,基础复习(快速排序及优化) 使用了三值取中和插排优化 #include<stdio.h> #define InsertSortNumber 10 void InsertSort(int Arra[],unsigned int LowIndex,unsigned int HighIndex) { printf("low=%d,high=%d\n",LowIndex,HighIndex); for (unsigned int i = LowIndex + 1; i &

温故知新,基础复习(二叉堆排序)

温故知新,基础复习(二叉堆排序) 最小堆(最终数组的数据是降序),最大堆(最终数组的数据是升序) 下例是最小堆 #include <stdio.h> #include <stdlib.h> void Swap(int Arra[],unsigned int LeftIndex,unsigned int RightIndex) { int TeampValue = Arra[LeftIndex]; Arra[LeftIndex]=Arra[RightIndex]; Arra[Righ

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对)

温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对) #include<stdio.h> #include<stdlib.h> void PrintSumNumbers(int Arra[],int ASize,int Sum) { //O(1) if (ASize<2) { printf("The size of the Arra is invalid.\n"); return; } if(Sum&

软件开发技术基础复习要点

软件开发技术基础复习要点 1.生存周期: 指一个软件从提出开发要求开始,经过需求分析.设计.制造.调试.使用.维护,直到软件产品被淘汰为止的整个过程. 2.简述软件工程的基本原理: 用分阶段的生命周期计划严格管理: 坚持进行阶段评审: 实行严格的产品控制: 采纳现代程序设计技术: 结果应该能清楚地审查: 开发小组应小而精: 承认不断改进软件工程实践的必要性. 3.简述产生软件危机的原因和解决办法: 原因:开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾,致使软件开发陷入循环之中,即研制软

JS基础复习

js基础语法 Netcape js基础语法规范(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM BOM :是由浏览器厂商各自实现的,所以差异比较大 DOM:相关的规范  是由W3C维护的 Node的优势  没有浏览器的兼容性问题 前端项目尽量不要使用ES6,需要考虑兼容性问题 --------------------------------数据类型--------------------------- 1.数据类型分类: 基本数据

c# 基础复习1

1. 类和对象 1.1 类和对象的概念 类:对象的类型,它不同于 int 等基本数据类型,因为类具有行为:也可以说是具有相 同特征和行为的一组对象的集合. 对象:对象是一个个你能看得见,摸得着的实体,是实实在在的事物,具有相同特征和 行为的对象可以抽象成类. 1.2 定义类的语法 [modifier] class ClassName { //[field,Method] } 1.3 如何创建对象 ClassName name=new ClassName(); 1.4 命名空间: 作用:用于管理类

Java 笔记之基础复习

1.& 与 &&的区别 两个都有逻辑与的功能.但是所不同的是,当&两边的表达式不是boolean类型的时候,&具有位与的功能:&&是短路与,当判断到前一个表达式为false的时候,将不会再去计算后面的表达式. 如: int i = 0; System.out.println((1==0)&(0==(i++))); System.out.println(i); 输出是: false 1 但是, int i = 0; System.out.pri

sql基础复习

--1.while循环 declare @sum int declare @i int set @i=1 set @sum=0 while(@i<101) begin set @sum [email protected]+@i set @[email protected]+1 if(@i>90) print @i end print @sum --2.goto语句 declare @num int set @num=100 flag: print @num select @[email pro

Java基础复习笔记系列 四

Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时,不能指定其长度.不同于C 数组的小标可以是整型常量或整型表达式. .length方法是显示数组的长度:数组.length;String.length();一个是属性,一个是方法.注意区分. 2.数组的内存分析? Array a[]; a = new Integer(15); /*这个a在栈中,在堆