一、C++的特点
1、C++语言的特点
它是C语言的继承,尽量兼容C语言,既保持了C语言的简洁和高效,可以像C语言那样进行结构化程序设计,同时也增强了C语言对类型的处理。
加入了面向对象的特征,可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
2、与C语言相比,C++语言的优点:
(1)从程序运行的稳定性来说,C++语言比C语言更安全,它支持过程化编程、面向对象编程和泛型编程。因为能够支持面向对象的开发方式,所以C++语言的应用领域更加广泛。
(2)C++语言可运行于多种平台上,如Windows、MAC操作系统及UNIX的多种版本。
(3)C++语言中加入了面向对象的概念,虽然C语言的语法绝大部分都被保留在C++语言中,但C++的程序结构与C语言的程序结构存在很大差别。C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是引进了类和对象的概念。
3、C++的程序结构
C++程序以.cpp作为文件扩展名,文件中包含若干个类和若干个函数。程序中必须有且仅有一个主函数main( ),这是程序执行的总入口。主函数也称为主程序。程序从主函数main( )的开始处执行,主函数可以在任何地方出现,按照其控制结构,一直执行到结束。
程序的结束通常是遇到了以下两种情形之一。
- 1)在主函数中遇到return语句。
- 2)执行到主函数最后面的括号}。
主函数中可以调用程序中定义的其他函数,但其他函数不能调用主函数。主函数仅是系统为执行程序时所调用的。
C++程序中,仍沿用C语言的注释风格,即注释有以下两种形式:
- 1)从/*开始,到*/结束,这之间的所有内容都视作注释。
- 2)从//直到行尾,都是注释。
二、基础语法
C++工程中只能有一个main() 函数
1、基本的输入/输出
在C++中,可以使用流提取运算符“>>”从标准输入设备键盘取得数据。
- cin 是一个标准的输入流对象, “cin>>x;”从键盘获取输入数据并赋给变量x。使用cin可以获得多个来自键盘的输入值。
- cout是一个标准输出流对象,使用流插入运算符“<<”向输出设备屏幕输出信息。
void cinAndCout(){ int x=0; cin>>x; cout << "Hello, World!=>" << x << endl; }
真题:已知:"int a=5;char c='a';"则输出语句cout<<c+1<<a<<c;的显示结果是(985a) 解答:'a'+1 是一个算数运算,a转为int 对于的ascII 吗是97 所以 c+1=98
2、头文件
头文件:在C++中一个C++源文件如果要使用其他C++文件的内容,那么他必须包含其头文件,使用#include指令
- ostream是C++的标准输入/输出流。当在程序中使用cin或cout时,必须在程序的最前面包含这个流。
- 每条#include指令仅可以包含一个头文件,如果需要包含多个头文件,则需要使用多条#include指令。
- 在C++中,头文件不再以“.h”结尾,以“.h”结尾的头文件是C语言中常用的头文件。
当使用尖括号时,C++编译器将首先在C++系统设定的目录中寻找要包含的文件,如果没有找到,再到指令中指定的目录中去查找。采用双引号时,C++编译器在用户当前目
录下或指令中指定的目录下寻找要包含的文件。例如,要包含e:myprog目录下的头文件ex1.h,相应的语句如下:#include"e:myprogex1.h“
常用的头文件有以下一些。
- 标准输入输出流:<iostream>。
- 标准文件流:<fstream>。
- 标准字符串处理函数:<string>。
- 标准数学函数:<cmath>。
#include <iostream> #include <string> #include"e:myprogex1.h“
3、命名空间
C++中为了避免名字定义冲突,特别引入了“命名空间”的定义,即namespace。命名空间的作用是为了消除同名引起的歧义。 using namespace std;
namespace 命名空间名{
命名空间内的各种声明(函数声明、类声明、……)
}
namespace MyTest{ int add(int a,int b){ return a+b; } } int main() { int m=MyTest::add(1,3); cout << "m=:" << m << endl; return 0; }
4、C++中的基本数据类型
整型:整形包括短整型、整形和长整形。
- 1、短整形:两个字节,例如:short a=1;
- 2、整形:一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后;定义:用int关键字,例:int a=6;
- 3、长整形:一般8字节 long a=10;
浮点型:浮点型包括单精度型和双精度型。
- 1、单精度型浮点型,又称实型,也称单精度。一般占4个字节(32位),例如:float a=4.5;
- 2、双精度型:一般占8个字节(64位) 例如: double a=4.5;
字符类型:在各种不同系统中,字符类型都占一个字节(8位)。例如: char c='a'; 也可以用字符对应的ASCII码赋值,如:char c=97;
#include <typeinfo> void number(){ int num_I=10; long num_L=12; short num_s=20; float num_f=12.3; double num_d=12.3; char num_c='A'; cout<<"type"<< typeid(num_I).name()<<endl; }
5、数据类型转换
强制类型转换(显式类型转换):static_cast用于将一种数据类型转换成另一种数据类型,使用格式如下:static_cast<类型名>(表达式)其功能是把表达式转换为类型名所指定的类型。static_cast也可以省略。
int oneInt2=static_cast<int>(12.34); //强制类型转换 int oneInt3=int(12.34); //强制类型转换运算符的新形式 int oneInt4=(int)12.34; //强制类型转换运算符的旧有形式 int oneInt5=12.34; //自动类型转换
隐式类型转换:
long num_L=12; double num_d=12.3; cout<<"type="<< typeid(num_L+num_d).name()<<endl; // d double 类型
6、C++程序的编辑步奏
编写C++程序一般需经过的几个步骤依次是:编辑、编译、连接、运行
- 编辑:编写.cpp的源文件
- 编译:C++编译器将源文件编译位为字节码文件
- 连接:链接就是把自己写的源代码的目标文件与库函数的目标文件组合起来(#include指令),生成最终的可执行文件
- 运行:执行.exe