1 //第一种方式被注释
2 //未被注释是第二种方式
3 //类模板分文件编写问题及解决
4
5
6 #include <iostream>
7 #include <string>
8 #include<fstream>
9 //第一中解决方式 直接包含源文件
10 //#include"person.cpp"
11
12
13 //第二种解决方法 将.h 和 cpp的内容写到一起,将后缀改为.hpp文件
14
15 #include"person.hpp"
16
17
18 using namespace std;
19 //
20 //template<class T1,class T2>
21 //class Person
22 //{
23 //public:
24 // Person(T1 name,T2 age);
25 //
26 // void showPerson();
27 //
28 // T1 m_Name;
29 // T2 m_Age;
30 //};
31
32 //template<class T1,class T2>
33 //Person<T1, T2>::Person(T1 name, T2 age)
34 //{
35 // this->m_Name = name;
36 // this->m_Age = age;
37 //}
38 //
39 //template<class T1, class T2>
40 //void Person<T1, T2>::showPerson()
41 //{
42 // cout << "name= " << this->m_Name << " 年龄:" << this->m_Age << endl;
43 //}
44 //
45 void test01()
46 {
47 Person<string, int>p("Jerry", 52);
48 p.showPerson();
49 }
50 int main()
51 {
52
53 test01();
54
55
56 system("pause");
57
58 return 0;
59
60 }
 1 person.hpp
2
3 #pragma once
4 #include <iostream>
5 using namespace std;
6
7 #include <string>
8 #include<fstream>
9
10
11 template<class T1, class T2>
12 class Person
13 {
14 public:
15 Person(T1 name, T2 age);
16
17 void showPerson();
18
19 T1 m_Name;
20 T2 m_Age;
21 };
22 template<class T1, class T2>
23 Person<T1, T2>::Person(T1 name, T2 age)
24 {
25 this->m_Name = name;
26 this->m_Age = age;
27 }
28
29 template<class T1, class T2>
30 void Person<T1, T2>::showPerson()
31 {
32 cout << "name= " << this->m_Name << " 年龄:" << this->m_Age << endl;
33 }
 1 person.cpp
2
3 //#include "person.h"
4 //
5 //
6 //template<class T1, class T2>
7 //Person<T1, T2>::Person(T1 name, T2 age)
8 //{
9 // this->m_Name = name;
10 // this->m_Age = age;
11 //}
12 //
13 //template<class T1, class T2>
14 //void Person<T1, T2>::showPerson()
15 //{
16 // cout << "name= " << this->m_Name << " 年龄:" << this->m_Age << endl;
17 //}

C++ //类模板分文件编写问题及解决 //第一中解决方式 直接包含源文件 //第二种解决方法 将.h 和 cpp的内容写到一起,将后缀改为.hpp文件的更多相关文章

  1. c++类模板分文件编写存在的问题

    c++分文件编写的编译机制: 各个文件独立编译,如果在某.cpp文件中出现了函数调用,但是在此.cpp文件并没有对应函数的实现.此时就会在函数调用出生成特定的符号,在之后的链接过程完成函数调用. C+ ...

  2. 向JSP中静态导入HTML文件时,运行jsp时,html中中文产生乱码问题最简单的解决方法

    在保证其他的编码格式一致的情况下 在html标签内,head标签外添加一下代码时可以完美解决 亲测 <%@page pageEncoding="UTF-8"%>

  3. 【C++ 泛型编程01:模板】函数模板与类模板

    [模板] 除了OOP外,C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 函数模板 函数模板作用 建立一个通用函数,其函数返回值类型和形参类型可以 ...

  4. Pdf File Writer 中文应用(PDF文件编写器C#类库)

    该文由小居工作室(QQ:2482052910)    翻译并提供解答支持,原文地址:Pdf File Writer 中文应用(PDF文件编写器C#类库):http://www.cnblogs.com/ ...

  5. C++函数模板&类模板

    函数模板 模板概念及语法 主要目的,简化代码,减少重复代码.基本语法格式:  template<class T> 或者 template<typename T> //末尾不加分 ...

  6. C++解析(26):函数模板与类模板

    0.目录 1.函数模板 1.1 函数模板与泛型编程 1.2 多参数函数模板 1.3 函数重载遇上函数模板 2.类模板 2.1 类模板 2.2 多参数类模板与特化 2.3 特化的深度分析 3.小结 1. ...

  7. C++类模板和模板类

    C++ 中有一个重要特性,那就是模板类型.类似于Objective-C中的泛型.C++通过类模板来实现泛型支持. 1 基础的类模板 类模板,可以定义相同的操作,拥有不同数据类型的成员属性. 通常使用t ...

  8. 【校招面试 之 C/C++】第2题 函数模板、类模板、特化、偏特化

    1.C++模板 说到C++模板特化与偏特化,就不得不简要的先说说C++中的模板.我们都知道,强类型的程序设计迫使我们为逻辑结构相同而具体数据类型不同的对象编写模式一致的代码,而无法抽取其中的共性,这样 ...

  9. 【C++】C++中的类模板

    基础的类模板 模板类的继承 内部声明定义普通模板函数和友元模板函数 内部声明友元模板函数+外部定义友元模板函数 声明和定义分别在不同的文件(模板函数.模板友元) C++中有一个重要特性,那就是模板类型 ...

  10. C++ 函数模板&类模板详解

    在 C++ 中,模板分为函数模板和类模板两种.函数模板是用于生成函数的,类模板则是用于生成类的. 函数模板&模板函数     类模板&模板类  必须区分概念 函数模板是模板,模板函数时 ...

随机推荐

  1. c#时间格式转换汉字大写

    把时间转换为汉字大写 public class DateTimeConvert { public static string ConvertToChineseCapital(DateTime date ...

  2. C#使用命令行打开diskpart修改盘符

    参考链接: https://www.cnblogs.com/k98091518/p/6019296.html https://learn.microsoft.com/zh-cn/windows-ser ...

  3. c和c++开发工具之clion和vs

    个人体验结果 如果是CMake或者要跨平台的话,建议使用CLion 像我在看书写练习题的话,Clion使用cmake编译c/c++源码更简单上手使用. 如果项目不大,两者都可以.如果关联子项目或第三方 ...

  4. 虚拟IP绑定公网IP访问

    绑定公网 IP 我们目前的虚拟 IP,还不能通过公网的形式进行访问,我们首先,来使用内部的 IP 进行访问看看效果如下: curl 虚拟IP 如上图我访问了两次,第一次访问返回的是 2222 的 ng ...

  5. 基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

    基于新浪微博海量用户行为数据.博文数据数据分析:包括综合指数.移动指数.PC指数三个指数 项目介绍 微指数是基于海量用户行为数据.博文数据,采用科学计算方法统计得出的反映不同事件领域发展状况的指数产品 ...

  6. Java开发学习(四十七)----MyBatisPlus删除语句之多记录操作

    1.多记录操作 先来看下问题: 之前添加了很多商品到购物车,过了几天发现这些东西又不想要了,该怎么办呢? 很简单删除掉,但是一个个删除的话还是比较慢和费事的,所以一般会给用户一个批量操作,也就是前面有 ...

  7. Linux反空闲的设置和关闭

    有一定工作经验的运维人基本都会遇到这样的场景,某个窗口自动断开了,提示超时: [oracle@jystdrac1 ~]$ timed out waiting for input: auto-logou ...

  8. win10远程桌面连接,使用正确的用户名和密码仍然不能成功连接

    最近笔记本重置后,台式使用"远程桌面连接"远程笔记本失败了,总是提示"登录没有成功". 开始自查:win10专业版,允许远程的相关设置也都开了,连接的ip正确, ...

  9. react router component与render有什么区别?提升渲染性能,记一个react router component 误用导致请求死循环的有趣bug

    壹 ❀ 引 下午前端大佬突然私聊我,说发现了一个很有趣的bug,问我有没有兴趣,因为我平时会记录一些自认为有意思的问题,所以毫不犹豫就答应了,问题表现如下,当我们系统进入到某个页面下时,接口居然无止境 ...

  10. Oracle 分析函数详解(Analytic Functions)--示例部分

    Analytic functions are commonly used in data warehousing environments. In the list of analytic funct ...