博客
关于我
重学C++笔记之(一)基础介绍
阅读量:537 次
发布时间:2019-03-08

本文共 1730 字,大约阅读时间需要 5 分钟。

C++是一种多范式编程语言,结合了过程性语言、面向对象编程和泛型编程三种不同的编程范式。作为C语言的扩展,C++在继承C语言结构性的基础上,引入了类和对象的概念,使得程序设计更加面向数据和对象。同时,C++通过模板机制支持了泛型编程,为程序员提供了更高级的代码复用能力。

C语言

C语言是20世纪70年代贝尔实验室开发的初等过程性语言。其设计初衷是为 UNIX 操作系统开发而成,旨在提供一种高效、灵活的编程方式。与汇编语言不同,C语言通过抽象化的方式减少了对硬件的依赖,使得程序的迁移性得到了显著提升。

C语言的结构性特点体现在其支持for、while循环以及条件语句等结构化语句上。程序的设计遵循自顶向下的原则,通过将程序划分为函数模块,实现了模块化的设计理念。

面向对象编程

面向对象编程(OOP)是C++引入的核心概念之一。与过程性编程强调的算法不同,OOP更注重数据的管理和复用。类在OOP中扮演着核心角色,它定义了对象的格式和行为规则。通过继承和多态性等机制,对象可以在程序中灵活地扩展和使用。

C++中的类是对象的蓝图,描述了对象的属性和方法。通过new操作符,程序员可以根据类的定义创建对象,这些对象是程序运行中的核心实体。

C++和泛型编程

C++的泛型编程支持通过模板机制实现代码的抽象和复用。与OOP关注数据不同,泛型编程注重独立于特定数据类型的代码设计。通过模板,程序员可以编写一种通用的函数或数据结构,这种结构可以被多个具体的数据类型使用。

C++模板的设计使得代码更加灵活和可维护。通过编写模板函数,程序员可以在不修改代码的情况下支持多种数据类型的操作。

C++的起源与发展

C++最初由Bjarne Stroustrup在20世纪80年代开发,最初名为"CPP"。它最初的目标是为C语言提供更强大的功能,最终发展成为一种独立的编程语言。1988年,ISO标准委员会正式承认C++作为标准化的编程语言。

C++的发展经历了多个标准版本的演变:

  • C++98(ISO/IEC 14882:1998):引入了异常处理、运行时类型识别(RTTI)、模板和标准模板库(STL)。
  • C++03(ISO/IEC 14882:2003):与C++98兼容,没有重大改变。
  • C++11(ISO/IEC 14882:2011,曾被称为C++0x):新增了统一初始化语法、增强的const编译支持以及更多的标准库功能。

编程相关

C/C++编程过程通常包括以下几个阶段:

  • 预处理器:处理宏定义、条件编译指令、头文件包含等。
  • 编译器:将源代码转换为中间代码或汇编代码。
  • 汇编程序:将汇编语言翻译为机器指令。
  • 链接器:将目标代码和库文件组合成可执行程序。
  • 源代码文件通常以 .c.cc.cxx.cpp 等扩展名保存。不同的编译器可能对这些文件名的处理方式有所不同。

    在UNIX系统中,编译命令通常为 CC -o my_program my_source.c other_source.c。编译完成后,系统会自动链接相关的目标文件生成可执行文件。

    在Linux系统中,常用的编译器是g++(GNU C++编译器)。编译命令为 g++ my.cxx precious.cxx,生成的可执行文件通常命名为 a.out。如果只修改了某个源文件,可以使用 g++ my.cxx precious.o 进行重新编译。

    在Windows环境下,常用的编译器是Visual C++或第三方工具链(如Cygwin或MinGW)。编译命令通常为 g++ great.cpp,生成的可执行文件为 a.exe

    其他基础介绍

  • 注释

    • 单行注释使用 //
    • 多行注释使用 /*...*/
  • 头文件

    • C++新式头文件不带扩展名,例如 iostream
    • 使用新式头文件时需要在开头加上 using namespace std;
    • 旧式头文件通常带有 .h 扩展名,例如 iostream.h
  • 关键字

    • namespace 用于定义命名空间。
    • using 用于导入命名空间或声明函数。
    • template 用于定义模板函数或类。
  • 文章参考:《C++ Primer Plus第六版》

    转载地址:http://uzbiz.baihongyu.com/

    你可能感兴趣的文章
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>
    PowerDesigner使用教程:导出sql文件以及解决中文乱码问题
    查看>>
    PowerDesigner使用教程:时间字段设置
    查看>>
    PowerDesigner使用教程:给字段添加唯一约束
    查看>>
    QGIS中怎样设置图层样式并导出地图样式
    查看>>
    PowerDesigner使用笔记
    查看>>
    QGIS中怎样实现数据坐标系转换
    查看>>
    PowerDesigner学习--基本步骤
    查看>>
    PowerDesigner导出Report通用报表
    查看>>
    PowerDesigner教程系列(二)概念数据模型
    查看>>
    Powerdesigner显示表的comment和列的comment的方法
    查看>>
    PowerDesigner最基础的使用方法入门学习
    查看>>
    PowerDesigner版本控制器设置权限
    查看>>
    PowerDesigner生成数据模型并导出报告
    查看>>
    QGIS中导入dwg文件并使用GetWKT插件获取绘制元素WKT字符串以及QuickWKT插件实现WKT显示在图层
    查看>>
    PowerDesigner逆向工程从SqlServer数据库生成PDM(图文教程)
    查看>>
    PowerEdge T630服务器安装机器学习环境(Ubuntu18.04、Nvidia 1080Ti驱动、CUDA及CUDNN安装)
    查看>>
    PowerPC-object与elf中的符号引用
    查看>>
    QFileSystemModel
    查看>>