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

一些定义

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

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

​ 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)

猜你喜欢

转载自blog.csdn.net/Huangpengyu123/article/details/107074108