c++模板编程分文件编程问题

在分文件编译时对于模板编程遇到的一些问题:显示"underfined reference to …"。

.
├── CMakeLists.txt
├── README.md
├── build
├── include
│   ├── node.h
│   └── skip_list.h
├── main.cpp
└── src
    ├── node.cpp
    └── skip_list.cpp

3 directories, 7 files

c++模板编程分文件编程问题_第1张图片

我检查了好久,且问了chatgpt未找到解决措施。

但是随着不断的排除,最终将问题定位到头文件和源文件没有链接上。我突然想到最早学C++模板编程时,他们是建议用.hpp来定义和实现的,但是现在我是分文件编程可能有问题。之后我又在网上搜索,找到了两个解决方法。

直接包含源文件

#include 
#include "node.h"

node.h换为node.cpp,即可。

#include 
#include "node.cpp"

这是因为在.cpp文件内含有.h文件,就相当去编译器知道了头文件和源文件。

c++模板编程分文件编程问题_第2张图片

c++模板编程分文件编程问题_第3张图片

将定义和实现写入到一个.hpp文件内

.
├── CMakeLists.txt
├── README.md
├── include
│   ├── node.hpp
│   └── skip_list.hpp
├── introduction(原版)
│   └── 模板采用分文件编程错误x
│       ├── CMakeLists.txt
│       ├── README.md
│       ├── build
│       ├── include
│       │   ├── node.h
│       │   └── skip_list.h
│       ├── main.cpp
│       └── src
│           ├── node.cpp
│           └── skip_list.cpp
└── main.cpp

6 directories, 12 files

c++模板编程分文件编程问题_第4张图片

C++模板笔记八:类模板分文件编写_有类模板的对象怎么分成头文件-CSDN博客

你可能感兴趣的:(C++学习,Linux,vsc,c++,开发语言)