C++小知识点-分离式编译

    技术2022-07-11  102

    一些定义

    随着程序越来越复杂,我们希望把程序的各个部分分别存储再不同的文件中.

    一个程序,我们可以分成三个部分

    ​ 1.头文件:包含结构声明和使用这些结构的函数的原型

    ​ 2.源代码文件:包含于结构有关的函数的代码

    ​ 3.源代码文件:包含调用于结构相关的函数的代码

    头文件常包含的内容:

    ​ 1.函数原型

    ​ 2.使用#define 或const定义的符号常量

    ​ 3.结构声明

    ​ 4.类声明

    ​ 5.模板声明

    ​ 6.内联函数

    一个例子

    头文件

    head.h

    #pragma once #ifndef HEAD_H_H #define HEAD_H_H #include<string> using namespace std; struct Game { string gameName; string gameScore; }; void inputGame(Game games[], int size); void sort(Game games[], int size); void display(const Game games[], int size); const int Size = 5; #endif // !HEAD_H_H

    两个源文件

    Game.cpp 用来放函数的

    #include<iostream> #include "head.h" using namespace std; void inputGame(Game games[], int size) { for (int i = 0; i < size; i++) { cout << "请输出喜欢游戏的名称" << endl; cin >> games[i].gameName; cout << "请输入游戏评分(10以内的小数):"; cin >> games[i].gameScore; } } void sort(Game games[], int size) { Game temp; for (int i = 0; i < size - 1; ++i) { for (int j = i + 1; j < size; ++j) { if (games[i].gameScore < games[j].gameScore) { temp = games[i]; games[i] = games[j]; games[j] = temp; } } } } void display(const Game games[], int size) { for (int i = 0; i < size; i++) { cout << i + 1 << ":" << games[i].gameName << "(" << games[i].gameScore << ")" << endl; } }

    主CPP

    #include "head.h" #include<iostream> int main() { cout << "请输入5个你喜欢的游戏的名称,并给它们评分:" << endl; Game games[Size] = {}; inputGame(games, Size); sort(games, Size); display(games, Size); return 0; }

    运行结果

    请输入5个你喜欢的游戏的名称,并给它们评分: 请输出喜欢游戏的名称 Steam 请输入游戏评分(10以内的小数):8 请输出喜欢游戏的名称 LOL 请输入游戏评分(10以内的小数):8 请输出喜欢游戏的名称 饥荒 请输入游戏评分(10以内的小数):8 请输出喜欢游戏的名称 NBA 请输入游戏评分(10以内的小数):8 请输出喜欢游戏的名称 沙滩排球 请输入游戏评分(10以内的小数):9 1:沙滩排球(9) 2:LOL(8) 3:饥荒(8) 4:NBA(8) 5:Steam(8)
    Processed: 0.011, SQL: 9