C++ 简介及基础学习,g++ 的应用说明

C++ 简介

  • C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
  • C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
  • C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
  • C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。


面向对象程序设计

C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

  • 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。

  • 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。

  • 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。

  • 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。


标准库

        标准的 C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

ANSI 标准

        ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。

        由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。


学习 C++

        学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。

        学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。

        C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。


C++ 的使用

        C++ 语言在许多行业和领域都有广泛应用,包括:

  • 游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。

  • 嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。

  • 金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

  • 图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

  • 科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。


标准化

发布时间通称备注
2020C++20, C++2aISO/IEC 14882:2020
2017C++17第五个C++标准
2017coroutines TS协程库扩展
2017ranges TS提供范围机制
2017library fundamentals TS标准库扩展
2016concurrency TS用于并发计算的扩展
2015concepts TS概念库,用于优化编译期信息
2015TM TS事务性内存操作
2015parallelism TS用于并行计算的扩展
2015filesystem TS文件系统
2014C++14第四个C++标准
2011-十进制浮点数扩展
2011C++11第三个C++标准
2010-数学函数扩展
2007C++TR1C++技术报告:库扩展
2006-C++性能技术报告
2003C++03第二个C++标准
1998C++98第一个C++标准

C++ 环境设置

本地环境设置

        如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。

文本编辑器

        这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。

        文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/vi 可用于 Windows 和 Linux/UNIX 操作系统上。

        通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。

        在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。


C++ 编译器

        写在源文件中的源代码是人类可读的源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。

        C++ 编译器用于把源代码编译成最终的可执行程序。

        大多数的 C++ 编译器并不在乎源文件的扩展名,但是如果您未指定扩展名,则默认用 .cpp。

        最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您使用的是 HP 或 Solaris,则可以使用各自操作系统上的编译器。

        以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。


安装 GNU 的 C/C++ 编译器

UNIX/Linux 上的安装

        如果您使用的是 Linux 或 UNIX,请在命令行使用下面的命令来检查您的系统上是否安装了 GCC:

$ g++ -v

        如果您的计算机上已经安装了 GNU 编译器,则会显示如下消息:

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)

        如果未安装 GCC,那么请按照 Installing GCC- GNU Project 上的详细说明安装 GCC。

Mac OS X 上的安装

        如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。一旦安装上 Xcode,您就能使用 GNU 编译器。

        Xcode 目前可从 Sign In - Apple 上下载,需要使用 apple ID 登录 。

Windows 上的安装

        为了在 Windows 上安装 GCC,您需要安装 MinGW。为了安装 MinGW,请访问 MinGW 的主页 mingw-w64.org,进入 MinGW 下载页面,下载最新版本的 MinGW 安装程序,命名格式为 MinGW-<version>.exe。

        当安装 MinGW 时,您至少要安装 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情况下都会安装更多其他的项。

        添加您安装的 MinGW 的 bin 子目录到您的 PATH 环境变量中,这样您就可以在命令行中通过简单的名称来指定这些工具。

        当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。


使用 Visual Studio (Graphical Interface) 编译

1、下载及安装 Visual Studio Community 2015

2、打开 Visual Studio Community

3、点击 File -> New -> Project

4、左侧列表选择 Templates -> Visual C++ -> Win32 Console Application,并设置项目名为 MyFirstProgram。

5、点击 OK。

6、在以下窗口中点击 Next

7、在弹出的窗口中选择 Empty project 选项后,点击 Finish 按钮:

8、右击文件夹 Source File 并点击 Add --> New Item... :

9、选择 C++ File 然后设置文件名为 main.cpp,然后点击 Add:

10、拷贝以下代码到 main.cpp 中:

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
    return 0;
}

界面如下所示:

11、点击菜单上的 Debug -> Start Without Debugging (或按下 ctrl + F5) :

 12、完成以上操作后,你可以看到以下输出:


g++ 应用说明

        程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库。通过遵循源码的命名规范并指定对应库的名字,用 gcc 来编译链接 C++ 程序是可行的,如下例所示:

$ gcc main.cpp -lstdc++ -o main

下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

最简单的编译方式:

$ g++ helloworld.cpp

由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。程序可以这样来运行:

$ ./a.out
Hello, world!

通常我们使用 -o 选项指定可执行程序的文件名,以下实例生成一个 helloworld 的可执行文件:

$ g++ helloworld.cpp -o helloworld

执行 helloworld:

$ ./helloworld
Hello, world!

如果是多个 C++ 代码文件,如 runoob1.cpp、runoob2.cpp,编译命令如下:

$ g++ runoob1.cpp runoob2.cpp -o runoob

生成一个 runoob 可执行文件。

g++ 有些系统默认是使用 C++98,我们可以指定使用 C++11 来编译 main.cpp 文件:

g++ -g -Wall -std=c++11 main.cpp

g++ 常用命令选项

选项解释
-ansi只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
-c只编译并生成目标文件。
-DMACRO以字符串"1"定义 MACRO 宏。
-DMACRO=DEFN以字符串"DEFN"定义 MACRO 宏。
-E只运行 C 预编译器。
-g生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY连接时搜索指定的函数库LIBRARY。
-m486针对 486 进行代码优化。
-oFILE 生成指定的输出文件。用在生成可执行文件时。
-O0不进行优化处理。
-O或 -O1 优化生成代码。
-O2进一步优化。
-O3比 -O2 更进一步优化,包括 inline 函数。
-shared生成共享目标文件。通常用在建立共享库时。
-static禁止使用共享连接。
-UMACRO取消对 MACRO 宏的定义。
-w不生成任何警告信息。
-Wall生成所有警告信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
"c stl基础应用"是一本关于STL(Standard Template Library,标准模板库)的基础应用方面的书籍。STL是C++的一个重要的库,它提供了一套标准模板和算法,用于处理数据结构和容器,例如向量、链表、队列、堆等等。 这本书可以帮助读者全面了解STL的基础知识和应用场景。它详细介绍了STL的各种容器、迭代器和算法的使用方法。例如,它会教读者如何创建一个向量,如何在向量中添加和删除元素,如何通过迭代器进行遍历等等。此外,这本书还介绍了STL的常见算法,例如排序、查找和拷贝等。 通过阅读这本书,读者可以学习到如何使用STL来提高程序的效率和可维护性。STL提供了许多高效的数据结构和算法,可以大大简化程序的开发过程。例如,使用STL的排序算法可以让开发者更方便地对数据进行排序操作,节省了编写排序算法的时间和精力。 此外,这本书还提供了一些实际应用的例子,帮助读者将STL的知识应用到实际项目中。这些例子可以帮助读者更好地理解STL的使用,并且在实际编程中能够更灵活地运用STL。 总之,"c stl基础应用"是一本关于STL的基础应用方面的书籍,它可以帮助读者系统地学习和理解STL的使用方法,并且通过一些实际例子来加强应用能力。如果对STL感兴趣或者需要使用STL来提高编程效率,这本书将是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗者才子酒中仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值