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

    你可能感兴趣的文章
    param[:]=param-lr*param.grad/batch_size的理解
    查看>>
    spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>
    Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
    查看>>
    Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Pascal Script
    查看>>
    Spring Boot集成Redis实现keyspace监听 | Spring Cloud 34
    查看>>
    Spring Boot中的自定义事件详解与实战
    查看>>
    Passport 密码模式
    查看>>
    Spring Boot(七十六):集成Redisson实现布隆过滤器(Bloom Filter)
    查看>>
    passwd命令限制用户密码到期时间
    查看>>
    Spring Boot 动态加载jar包,动态配置太强了!
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>
    PAT (Basic Level) Practice 乙级1021-1030
    查看>>
    PAT (Basic Level) Practice 乙级1031-1040
    查看>>
    PAT (Basic Level) Practice 乙级1041-1045
    查看>>
    SparkSql的元数据
    查看>>
    PAT (Basic Level) Practice 乙级1051-1055
    查看>>