后端 | C++ 自定义头文件、命名空间

143 阅读2分钟

后端 | C++ 自定义头文件、命名空间


C++ 自定义头文件来组织和管理函数、类

  1. 创建一个新的头文件
  2. 头文件声明函数具体化
  3. 源文件引入并调用函数
  • 创建新的头文件

image-20240304212233239.png

  • 头文件声明函数具体化

image-20240304212321806.png

  • 源文件引入并调用函数

image-20240304212552311.png

  • 结果

image-20240304212642773.png

C++自定义命名空间


C++ 中的命名空间相当于 Java 中的 Package 包 , 最常用的命名空间是 std

自定义命名空间声明
// 自定义命名空间
namespace mynamespace {
​
  // 调用时 需要调用 mynamespace::say_hi() 方法进行调用
  void say_hi() {
    // 注意 : 下面的 cout 和 endl 定义在 std 命名空间中
    // 如果没有声明 using namespace std; , 就必须使用域作用符号 "::" 才能访问
    // 域作用符格式 : 命名空间::调用内容
    std::cout << "自定义命名空间 mynamespace say_hi() 方法 : Hi!" << std::endl;
  }
}
自定义命名空间使用
  • 声明命名空间
using namespace std;// 声明命名空间namespace mynamespace { // 自定义命名空间
    int aaa = 10;
}
 
using namespace mynamespace;// 声明命名空间
 
int main() {
    cout << aaa<<endl;  //10
    return 0;
}
  • 没有声明命名空间的情况下调用命名空间中的方法
using namespace std;// 声明命名空间
 
namespace mynamespace { // 自定义命名空间
    int aaa = 10;
}
 
int main() {
    cout << mynamespace::aaa << endl;   //10
    return 0;
}

C++ 头文件的创建和调用


  1. 创建.h文件
  2. 创建.cpp文件,用于实现方法
  3. 创建test.cpp文件,用于测试.h文件
  • 创建.h文件
// 宏定义:#define
// 文件包含:#include
// 条件编译:#ifndef、#ifdef、#endif    #ifndef: 常用语防止头文件被多次包含   #ifdef: 常用于对指定位置进行判断后进行编译#ifndef HARDWARE_H
#define HARDWARE_H  class CommonUtil
{
public:
    int sum(int a, int b);
};
​
#endif
#pragma once class CommonUtil
{
public:
    int sum(int a, int b);
};
class CommonUtil
{
public:
    int sum(int a, int b);
};
  • 创建.cpp文件,用于实现方法
#include "CommonUtil.h";  int CommonUtil::sum(int a, int b)
{
    int sum = a + b;
    return sum;
}
  • 创建test.cpp文件
#include "CommonUtil.h";  
#include <iostream>  
using namespace std;
​
int main()
{
    int a = 2, b = 3;
    CommonUtil simple;
    cout << CommonUtil.sum(a, b) << endl;
    return 0;
}