C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
时,同时添加同名的源文件和头文 件。 • 头文件中的声明和源文件中的实现一一对应。 九、一个模块依赖其他模块,则应导入他的头文件 • 如果新模块( Carer )中用到了其他模块( Animal )的类或函数,则需要 在新模块( Carer )的头文件和源文件中都导入其他模块( Animal )的头 文件。 • 注意不论是项目自己的头文件还是外部的系统的头文件,请全部统一采用 < 项目名 十、依赖其他模块但不解引用,则可以只前向声明不导入头文件 • 如果模块 Carer 的头文件 Carer.h 虽然引用了其他模块中的 Animal 类,但 是他里面并没有解引用 Animal ,只有源文件 Carer.cpp 解引用了 Animal 。 • 那么这个头文件是不需要导入 Animal.h 的,只需要一个前置声明 struct Animal ,只有实际调用了 Animal 成员函数的源文件需要导入 Animal (或抄别人开源项目里的)个 Find 文件,用起来很不方便。但是 vcpkg 会为所有第三方 库,即使是懒惰的 Jemalloc ,都配备一个 Config 文件方便你 find_package 导入。所以 用 vcpkg 时,尽量用 find_package(XXX CONFIG REQUIRED) 避免被 CMake 自带的 Find 文件误导找到别的地方(而非 vcpkg 安装的那个)的库。0 码力 | 56 页 | 6.87 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
hello.h 一次了嘛 ~ • 后来,这个编译前替换的步骤逐渐变成编译器的了一部分,称为预处理阶段, #define 定 义的宏也是这个阶段处理的。 • 此外,在实现的文件 hello.cpp 中导入声明的文件 hello.h 是个好习惯,可以保证当 hello.cpp 被修改时,比如改成 hello(int) ,编译器能够发现 hello.h 声明的 hello() 和定 义的 hello(int) 这种形式表示不要在当前目录下搜索,只在系统目 录里搜索,” hello.h” 这种形式则优先搜索当前目录下有没有这个文件,找不到再搜索系统 目录。 • 此外,在实现的文件 hello.cpp 中也导入声明的文件 hello.h 是个好习惯: 1. 可以保证当 hello.cpp 被修改时,比如改成 hello(int) ,编译器能够发现 hello.h 声明的 hello() 和定义的 hello(int) ,那么 MyClass 会被 重复定义两遍: • 解决方案:在头文件前面加上一行: #pragma once • 这样当预处理器第二次读到同一个文件时,就会自动跳过 • 通常头文件都不想被重复导入,因此建议在每个头文件前加上这句话 头文件进阶 - 递归地使用头文件(再续) (自动跳过) CMake 中的子模块 • 复杂的工程中,我们需要划分子模块,通常一个库一个目录,比如: • 这里我们把0 码力 | 32 页 | 11.40 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
to_string 。 • >> 可以模仿 cin ,取代 stoi/stof/stod 。 • 最重要的是他支持各种控制选项(如 hex ), 功能性比 to_string 和 stoi 更强大。 • 要导入他,只需 #include即可。 字符串常用操作 第 6 章 at 获取指定位置的字符 • s.at(i) 和 s[i] 都可以获取字符串中的第 i 个字符。 • 区别在于 0 码力 | 162 页 | 40.20 MB | 1 年前3《深入浅出MFC》2/e
基本程序观念,我却开始讲如何设计一个MFC console 程序,是否有点时地不宜? 是有一点!所以我挑一个最单纯而无与别人攀缠纠葛的MFC 类别,写一个40 行的小 程序。目标纯粹是为了做一个导入,并与Win32 console 程序做一比较。 我所挑选的两个单纯的MFC 类别是CStdioFile 和CString: 在MFC 之中,CFile 用来处理正常的文件I/O 动作。CStdioFile 比结构化程序中经 过层层的例程传回一系列的错误状态来的好。事实上exception handling 是MFC 和 OWL 两个application frameworks 的防弹中心。 C++ 导入了三个新的exception 保留字: 1. try。之后跟随一段以{ } 圈出来的程序代码,exception 可能在其中发生。 2. catch。之后跟随一段以{ } 圈出来的程序代码,那是exception 簡單而完整:MFC 骨幹程式 411 第7章 简单而完整:MFC 骨干程序 当技术愈来愈复杂, 入门愈来愈困难, 我们的困惑愈来愈深, 犹豫愈来愈多。 上一章的Hello 范例,对于MFC 程序设计导入很适合。但它只发挥了MFC 的一小部 份特性,只用了三个MFC 类别(CWinApp、CFrameWnd 和CDialog)。这一章我们要 看一个完整的MFC 应用程序骨干(注),其中包括丰富的UI0 码力 | 1009 页 | 11.08 MB | 1 年前3
共 4 条
- 1