博客
关于我
重学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/

    你可能感兴趣的文章
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>