研究C++ 多文件与模板类
总览
- 研究材料:myLinkedList.cpp(链表v1.4.5)
- 研究目标:对于涉及C++模板类的C++单文件,如何成功地将其拆分成多文件,并通过控制台g++编译、链接、运行,避免因为
undefined reference to
报错 - 研究成果1:当不涉及C++模板类的内容时,成功地拆成3个文件:类的声明myLinkedList.h头文件;类的实现myLinkedList.cpp文件;主程序main.cpp文件。只需要两个.cpp文件include头文件,头文件添加保护块即可。控制台命令:
g++ -std=c++11 -o main.exe main.cpp myLinkedList.cpp myLinkedList.h
- 研究成果2:当涉及C++模板类的内容时,成功地拆成2个文件:类的声明与实现myLinkedList.hpp文件;主程序main.cpp文件。只需要两个.cpp文件include头文件,头文件添加保护块即可。控制台命令:
g++ -std=c++11 -o main.exe main.cpp myLinkedList.hpp
- 研究成果3:当涉及C++模板类的内容时,也可以成功地拆成3个文件: 类的声明Class.h头文件;类的实现myLinkedList.cpp文件;主程序main.cpp文件。然而,需要做如下修改:main.cpp include myLinkedList.cpp;myLinkedList.cpp include myLinkedList.h。控制台命令与不涉及模板类时相同
- 研究成果4:暂时没有发现g++命令中源文件顺序对结果的影响,目前来说是没有区别的