Menu
CoddyTech

头文件与源文件

本课属于 Coddy C++ 学习旅程的“面向对象编程”单元。第 3 课,共 104 课。

在 C++ 中,代码分为用于声明的头文件(.h)和用于实现的源文件(.cpp)。

带有头文件保护的头文件(helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

包含实现的源文件(helpers.cpp)

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

int addNumbers(int a, int b) {
    return a + b;
}

在 main 中使用它们

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

输出:

Hello, Alice!
8

头文件保护宏(#ifndef、#define、#endif)可以防止头文件被多次包含。.h 文件声明有哪些内容(函数原型),.cpp 文件定义这些内容如何工作(实现)。

challenge icon

挑战

中等

创建三个辅助函数,并将它们分别放在头文件和源文件中:

  • helpers.h:函数声明和头文件保护
  • helpers.cpp:函数实现

要创建的函数:

  • greet(name):返回 "Hello, <name>!"
  • ageInTenYears(age):返回 age + 10
  • checkAdult(name, age):如果年龄 >= 18,则返回 "<name> is an adult",否则返回 "<name> is a minor"

亲手试试

#include <iostream>
#include "helpers.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    std::cout << greet(name) << std::endl;
    std::cout << "In 10 years you will be " << ageInTenYears(age) << std::endl;
    std::cout << checkAdult(name, age) << std::endl;
    return 0;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: C++ 在线编译器