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

    你可能感兴趣的文章
    php在liunx系统中设置777权限不起作用解决方法
    查看>>
    PHP基于openssl实现的非对称加密操作
    查看>>
    php基本符号大全
    查看>>
    php基础篇-二维数组排序 array_multisort
    查看>>
    php基础配置环境变量
    查看>>
    php增删改查封装方法
    查看>>
    springboot之jar包Linux后台启动部署及滚动日志查看且日志输出至文件保存(超级详细)
    查看>>
    php多条件筛选功能的实现
    查看>>
    php多线程
    查看>>
    PHP大数组循环-避免产生Notice或者是Warning
    查看>>
    PHP大数组过滤元素、修改元素性能分析
    查看>>
    PHP大文件切片下载代码
    查看>>
    PHP如何下载远程文件到指定目录
    查看>>
    php如何优化压缩的图片
    查看>>
    php如何做表格,新手怎么制作表格
    查看>>
    RabbitMQ高级特性
    查看>>
    php如何定义的数位置,php如何实现不借助IDE快速定位行数或者方法定义的文件和位置...
    查看>>
    RabbitMQ集群 - 普通集群搭建、宕机情况
    查看>>
    php如何正确的获得文件的后缀名
    查看>>
    PHP如何生成唯一的数字ID
    查看>>