`

关于C++中的一些概念

    博客分类:
  • c++
 
阅读更多

关于C++中的一些概念

1iostreamiostream.h的区别

前者没有后缀,实际上,在编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。 后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。 因 此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout

2namespace是指标识符的各种可见范围

C++标准程序库中的所有标识符都被定义于一个名为stdnamespace中。 由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

直接指定标识符

例如std::iostream而不是iostream。完整语句如下: std::cout << std::hex << 3.4 << std::endl;

使用using关键字

using std::cout; using std::endl; using std::cin; 以上程序可以写成如下代码:

using std::cout <<using std::hex << 3.4 <<using std:: endl;

使用using namespace std

例如:

#include<iostream>

#include<sstream>

#include<string>

using namespace std;

这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写: cout << hex << 3.4 << endl; 因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。 所以就有了<iostream><iostream.h>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。 命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"

 

98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。举一个实例,请注意以下两个头文件:

// one.h

char func(char);

class String { ... };

// somelib.h

class String { ... };

如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。

所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。

 

 

分享到:
评论

相关推荐

    c++概念复习总结

    总结而言,C++概念复习总结涉及到的范围很广,不仅包括语言基础,如数据类型、表达式、控制结构和函数,还包括了面向对象编程的核心要素如类、对象、继承、多态等。学习C++不仅需要掌握语法,更要理解面向对象编程的...

    理解C++的一些概念

    在"**C++补充资料**"中,你可能会找到关于这些概念的深入讨论、示例代码和练习,这对于理解和巩固C++知识是非常有帮助的。通过不断实践和探索,你将逐渐熟练掌握C++的这些核心概念,从而成为一名优秀的C++程序员。

    C++课件第一章有关一些基本概念

    学习C++的过程中,理解这些基本概念至关重要。C++是一门既适合初学者也适合高级开发者的语言,它的灵活性和强大功能使其在各种领域都有广泛应用,包括系统软件、应用软件、游戏开发、嵌入式系统等。要深入掌握C++,...

    C++面向对象概念介绍

    C++面向对象概念介绍,相当好的东西,值得参考!希望对你有用!

    面向对象c++的基本概念

    面向对象c++的基本概念ppt,面向对象的基础知识,c++学习基础。

    C++基本概念 (面试、复习)

    在C++中标识符区分大小写,另外标识符不能和C++中的关键字相同,也不能和函数同名。 4.声明  将一个标识符引入一个作用域,此标识符必须指明类型,如果同时指定了它所代表的实体,则声明也是定义。

    C++异常的详细概念

    此PPT讲述了C++中异常的详细概念。包括:异常处理的任务;异常处理的方法;在函数声明中进行异常情况指定;在异常处理中处理析构函数。

    C++ api中文参考手册

    5. **C++基础知识**:尽管标题中提到“不全”,但“c++基础知识 不全.chm”文件可能包含了C++基础概念的简要介绍,对于初学者来说是一个不错的起点,可以快速了解C++的基本构造和用法。 总的来说,C++ API中文参考...

    C++98、C++03、C++11、C++14、C++17、C++20的CHM查询文档

    概念库 (C++20) 错误处理 动态内存管理 日期和时间工具 字符串库 容器库 迭代器库 范围库 (C++20) 算法库 数值库 输入/输出库 文件系统库 本地化库 正则表达式库 原子操作库 线程支持库 实验性 C++ 特性 有用的资源 ...

    学习C++的一些基础代码

    "学习C++的一些基础代码"这个标题暗示了我们将探讨的是C++语言的基本概念和语法,这对于初学者或者希望巩固基础知识的开发者来说是非常重要的。C++以其高效性、灵活性和面向对象特性而备受赞誉。 首先,让我们从C++...

    c++术语表 中英文对照

    这份术语表中收录了一千多个词汇,涵盖了C++编程语言的各个方面,从基本语法到高级概念、从标准库到特殊术语。下面是从这份术语表中生成的一些重要知识点: 1. 赋值运算符 (=):赋值运算符是C++中最基本的运算符之...

    关于C++的一些书籍

    对于那些希望深入学习C++的人来说,拥有一些优质的书籍资源是至关重要的。以下是对标题和描述中提及的知识点的详细解释: 1. **C++经验**:C++的经验积累通常包括对基本语法的理解、类和对象的掌握、模板的使用、...

    C++中文学习资料集合(C++ Primer、Thinking in C++、C++参考)

    书中通过大量的实例来解释抽象的概念,帮助读者建立起对C++深入的理解。它还涵盖了泛型编程、模板元编程、STL的深入使用等现代C++特性,是进阶学习者的理想选择。 C++参考手册,以.chm格式呈现,通常包含了C++语言...

    关于C++的一些小程序

    接下来,进阶的C++概念包括: 4. **类与对象**:C++是面向对象的编程语言,通过类来定义数据结构和行为,对象则是类的实例。理解类的封装、继承和多态是学习C++的核心。 5. **指针**:指针是C++的一个重要特性,...

    《C++沉思录》是一本由 Scoot Meyers 所著的经典 C++ 编程书籍 该书深入探讨了 C++ 的一些高级概念和技术

    例如,书中会详细阐述 C++ 的类型系统、命名规则以及模板机制等基础概念,并且会进一步探讨它们如何支持现代 C++ 编程中的设计理念,如资源获取即初始化(RAII)原则。 **资源管理与 RAII:** 资源获取即初始化...

    易学C++ (Easy C++) 中文PDF文字版 附习题答案及书中源码

    11. **面向对象编程**:书中可能深入讲解了类的继承、多态性和虚函数,这些都是C++面向对象设计的关键概念。 12. **实践应用**:通过实例源文件,读者可以动手实践,将理论知识转化为实际操作能力。 习题解答.doc...

    C++中文离线手册

    在手册中,你会找到关于这些概念的清晰解释,如何通过类和对象来实现封装,如何通过基类和派生类实现代码重用,以及虚函数和纯虚函数如何实现多态性。 C++的基础语法是学习的起点,涵盖变量定义、数据类型、运算符...

    c++编程的一些题目

    "C++编程的一些题目" 以下是从给定的文件信息中生成的相关知识点: 知识点1:C++编程中的方程求解 在C++编程中,求解方程是一个非常重要的应用场景。在给定的文件中,我们可以看到一个关于求解二次方程ax2 + bx +...

    C++中文教程合集 PDF高清版

    教程涵盖了从基础语法到高级特性的广泛内容,旨在帮助读者深入理解C++的核心概念和技术。 1. **C++入门**:对于初学者,了解C++的基本结构至关重要,包括变量声明、数据类型、运算符、流程控制(如if语句和循环)、...

Global site tag (gtag.js) - Google Analytics