c++模板学习10之类模板分文件编写
2023-09-14 09:02:34 时间
类模板分文件编写
问题:类模板中成员创建时机是在调用阶段,导致分文件编写时链接不到
解决方式1:直接包含.cpp源文件
p.h
#pragma once //防止头文件重复包含
#include<iostream>
using namespace std;
//类模板与继承
template<class T>
class Baba
{
public:
void fun();
};
p.cpp
#include"p.h"
//成员函数类外实现
//第二种写法
template<class T>
void Baba<T>::fun()
{
cout << "成员函数类外实现" << endl;
}
main.cpp
#include<iostream>
using namespace std;
#include"p.cpp"
int main()
{
Baba<int> baba;
baba.fun();
system("pause");
return 0;
}
解决方式2.将.h和.cpp里面内容写到一起,然后将后缀名改为.hpp
p.hpp
#pragma once //防止头文件重复包含
#include<iostream>
using namespace std;
//类模板与继承
template<class T>
class Baba
{
public:
void fun();
};
//成员函数类外实现
//第二种写法
template<class T>
void Baba<T>::fun()
{
cout << "成员函数类外实现" << endl;
}
main.cpp
#include<iostream>
using namespace std;
#include "p.hpp"
int main()
{
Baba<int> baba;
baba.fun();
system("pause");
return 0;
}
总结:主流解决方法为第二种
相关文章
- c++ 跨平台线程同步对象那些事儿——基于 ace
- DirectX修复工具使用技巧之一——解除被占用的文件,完整修复C++
- C/C++读写文本文件、二进制文件「建议收藏」
- c++ auto类型_auto C++
- C/C++——打开文件读取数据的各种方式「建议收藏」
- Vcl控件详解_c++控件
- C/C++ Qt 基本文件读写方法
- C/C++ 获取进程完整目录
- 【C++修炼之路】29.lambda表达式
- c++基础篇之C++ 模板
- C++二进制文件的读取和写入(精华版)
- C++ strcpy:字符串赋值函数
- C++文件类(文件流类)有哪些?
- C++命名空间在多文件编程中的具体用法
- C++ close()关闭文件的重要性
- C++文件依存关系介绍
- C++冒泡排序数据结构、算法及改进算法
- c++中.dll与.lib文件的生成与使用的详解
- C++实现正态随机分布的方法
- c++读写文件流实例程序讲解
- c++回调之利用函数指针示例
- C++实现2048游戏示例