初识C++

Posted Xiao__Tian__

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识C++相关的知识,希望对你有一定的参考价值。

C++语言的诞生:

        1982年,美国AT&T公司贝尔实验室的Bjarne Stroustrup博士在c语言的基础上引入并扩充了面向对象的概念,发明了—种新的程序语言。为了表达该语言与c语言的渊源关系,它被命名为c++。此后C++语言历经了不断地完善,例如1990年c++语言引入模板和异常处理的概念,1993年引入运行时类型识别(RTTI)和名字空间(Name Space)的概念。1997年,c++语言成为美国国家标准(ANSI)。1998年,c++语言又成为了国际标准(ISO)。目前,c++语言已成为使用最广泛的面向对象程序设计语言之一。 

c++语言是以c语言为基础的,支持c语言的所有语法和几乎所有的技术,因此也有人把c++语言看作是c语言的超集。同时c++语言支持面向对象程序设计方法的所有概念,它是一种非常实用的、功能极为强大的程序语言,相对而言较难掌握。          




1.C和C++:

C几乎是C++的一个子集,所以C语言支持的语法在C++基本都支持并需要使用。C plus plus(C++),所以在C的基础上又有了很多新的特性。








2.C++中的关键字有:






3.C++的常见数据类型:基本数据类型和非基本数据类型。


注:其中,基本数据类型也称为内置类型,就是语言本身内部已经定义的类型。非基本数据类型也称为自定义类型,用户根据需要定义符合自身需求的数据类型。







4.C++中还有一个被称作命名空间(namespace)的概念:

以关键字namespace开始,其后接命名空间的名字。例如:namespace std、namespace my_cpp  等。

命名空间的名字在其所在作用域中是唯一的,命名控件可以在全局作用域或者其它作用域内部定义,但是不能在函数或者类的内部定义。

⑶命名空间的作用:解决全局命名冲突的问题。标准C++库中的所有组件都是在一个被称为std的名字空间中声明和定义的。在采用标准C++的平台上使用标准C++库中的组件,只要写一个using指示符:using namespace std; 就可以直接使用标准C++库中的所有成员或者 std::成员 的方式也可以使用C++库里的成员。其中::是作用域解析符

⑷命名空间的几点特性:

                                               ①每个命名空间都是一个作用域。

                                               ②从命名空间外部使用命名空间成员。

                                               ③命名空间的定义可以是不连续的。

                                               ④接口和实现的分离。

                                               ⑤命名空间成员的定义方式。

                                               ⑥不能在不相关的命名空间中定义成员。

                                               ⑦全局命名空间。


▲对于命名空间这里的概念不多做介绍,有兴趣的可以参考这里的关于命名空间的相关博文:★★★★★命名空间★★★★★



▲关于iostream和iostream.h的问题:
#include<iostream.h> 在vc6.0中依旧支持这个旧的头文件,而.h这个是旧C++库的头文件,新的编译器(如vs2008及以上)都不再支持,建议使用新库的头文件#include <iostream>。






5.C++和C的输入输出:

          在C++中,cout是标准输出流对象,<< 是输出操作符;cin是标准输入流对象,>>是输入操作符;endl是换行操作符;他们都属于C++标准库,所以都在std的名字空间里面。对于C中的scanf()和printf()函数,因为C++包含了C的所有特性,所以在C++中依然可以使用C中的输入输出格式。

       也许有人会问,C语言中的格式控制可以输出不同的格式,比如:%d,%s,%p等等,C++能做到吗?当然可以,见下图。只不过这种格式输出用起来不是太顺手,本人还是觉得C语言的能方便些。









 

以上是关于初识C++的主要内容,如果未能解决你的问题,请参考以下文章

C++ c++初识

C++进阶-2-STL初识(容器算法迭代器等)

C++初识C++

〔C++算法分析〕迷宫问题

C++| C++ 入门教程 C++初识

C++提高编程STL 初识