c++ 学习一

-、C++语言的历史

C++ 语言是从C语言发展而来的。

C语言有很多优点,也有很多不足。如对类型匹配的检查不够严格、基本没有支持代码重用的机制、不支持面向对象等。这使得在用C语言开发大规模的软件时,维护和扩充都比较困难。

1980 年,贝尔实验室的 Bjarne Stroustmp 开始对C语言进行改进,为其加入面向对象的特性。最初,这种新语言被称为“带类的C(C with Classes)”。

1983 年,“带类的C”加入虚函数、函数和运算符重载、引用等概念后,正式定名为“C++(C plus plus)”。

1985 年,C++ 最权威的著作、由 Bjarne Stroustmp 撰写的《C++程序设计语言》(The C+ + Programming Language)第一版发布。

1989 年,C++ 2.0 版发布,加入了多重继承、抽象类、静态成员、常量成员函数等概念。1990 年,又加入了模板、异常处理、名字空间等机制。

1994 年,ANSI C++ 标准发布。

1998 年,ANSI(美国国家标准协会)和 ISO(国际标准化组织)联合发布了至今使用最为广泛的 C++ 标准,称为 C++ 98。C++ 98 最为重大的改进就是加入了 “标准模板库”(Standard Template Library, STL),使得“泛型程序设计”成为 C++ 除“面向对象”外的另一主要特点。

2003 年,ISO 的 C++ 标准委员会又对 C++ 略做了一些修订,发布了 C++ 03 标准。C++ 03 和 C++ 98 的区别对大多数程序员来说可以不必关心。

2005 年,一份名为 Library Technical Report 1(简称 TR1)的技术报告发布,为 C++ 加入了正则表达式、哈希表等重要类模板。虽然 TR1 当时没有正式成为 C++ 标准,但如今的许多 C++ 编译器都已经支持 TR1 中的特性。

2011 年 9 月,ISO 通过了新的 C+ + 标准,这就是 C++11。C++11 在酝酿的过程中被称为 C++ 0x,因为 Bjame Stroustmp 原本预计它应该在 2008 年或 2009 年发布。 C++11 对 C++ 的语言特性和标准库都做了比较大的扩充,TR1 中的许多特性正式成为 C++11 标准的一部分。

当前比较流行的 C++ 编译器有 GCC、微软公司的 Visual Studio 2015、Dev C++ 等。Dev C++ 核心的编译器实际上还是 GCC,只不过是用 IDE(集成开发环境)将其包装起来,更加便于使用。Visual Studio 功能最为强大,但是体积巨大而且价格昂贵;Dev C++ 只有几十兆字节大小,而且免费。推荐读者使用这两种编译器。

本书中的程序,除非特别说明,都能在上述两种编译器中编译通过,而且运行结果相同。

有两个网站用来查看 C++ 的各种函数、模板、类的用法特别方便,它们是:
http://www.cplusplus.com
http://www.cppreference.com

C++中的头文件

在 C++ 中,头文件不再以.h结尾,例如下一节提到的头文件 iostream。一些C语言中常用的头文件在 C++ 中的名字变为去掉.h,并在开头增加字符c。例如:
#include <cstdio>
#include <cstring>
#include <cstdlib>

强制类型转换运算符的新形式

在 C++ 中,强制类型转换可以写成以下形式:

类型名(待转换的表达式)

例如,int(3.5)、double(2)、double(a) 等看起来像函数调用,比C语言中 (int)3.5、(double)a 的写法更清晰。

二、C++输入输出

在 C++ 中,可以使用 cin 和 cout 进行输入和输出。

cout的用法如下:

cout<<待输出项1<<待输出项2<<...;

“待输出项”可以是各种基本类型的变量、常量和表达式。

以下程序演示了 cout 的用法:

 
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. int n = 5;
  5. double f = 3.9;
  6. char c = 'a';
  7. cout << "n=" << n << ",f=" << f << endl; //endl表示换行
  8. cout << 123 << ", c=" << c << endl;
  9. return 0;
  10. }

程序的输出结果是:
n=5,f=3.9
123, c=a

程序第 1 行引用了头文件 iostream,第 2 行表示使用名字空间 std,C ++ 程序通常都会包含这两行。如果没有语句using namespace std;,则 cout 就会没有定义,除非写明std::cout,指明其来自名字空间 std。

第7行输出了字符串、整型变量、浮点型变量。endl表示换行。

cin的用法如下:

cin>>变量1>>变量2>>...;

以下程序演示了 cin 的用法:

  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. int nl, n2;
  5. char s[20];
  6. double f;
  7. char c;
  8. cin >> s >> nl >> n2 >> c >> f ;
  9. cout << s <<"," << nl << "," << n2 << "," << c << "," << f <<endl;
  10. return 0;
  11. }

程序的运行结果:
Tom 5 10k 1.23↙
Tom,5,10,k,1.23

在本教程的运行结果中,↙表示按 Enter 键(回车键)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值