c++之类模板分文件编写

c++之类模板分文件编写,第1张

概述问题:类模板的成员函数是在调用时才被创建,导致分文件编写时调用不到。 解决: 1.直接包含cpp文件 2.将声明和实现写到同一个文件中,并更该后缀名为.hpp,.hpp是约定的名字,并不是强制 第一种

问题:类模板的成员函数是在调用时才被创建,导致分文件编写时调用不到。

解决

1.直接包含cpp文件

2.将声明和实现写到同一个文件中,并更该后缀名为.hpp,.hpp是约定的名字,并不是强制

第一种方式

头文件:person.h

#include<iostream>using namespace std;template<class T1,class T2>class Person {public:    Person(T1 name,T2 age);    voID show();    T1 name;    T2 age;};

源文件:person.cpp

#include "person.h"template<class T2>Person<T1,T2>::Person(T1 name,T2 age) {    this->name = name;    this->age = age;}//对于成员函数,需要指明类的参数的代表template<voID Person<T1,1)">::show() {    cout << this->name << endl;    cout << this->age << endl;}

源文件:test.cpp

第一种方式,直接包含源文件#include "person.cpp" test() {    Person<string,1)">int> p(tom",12);    p.show();}int main() {    test();    system(pause);    return 0;}

注意标红的地方,引入的是person.cpp,而不是person.h,因为类模板成员函数是在调用时才创建的,因此在编译阶段引入person.h是找不到声明的实现的。

第二种方式:

头文件:person.hpp

#include<iostream> show();    T1 name;    T2 age;};template<第二种方式,将.h和.cpp中的内容写到一起,将后缀名改为.hpp#include person.hpp";}

将类模板的声明和实现都放在.hpp中,并在cpp文件中进行引用即可。

总结

以上是内存溢出为你收集整理的c++之类模板分文件编写全部内容,希望文章能够帮你解决c++之类模板分文件编写所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1159557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存