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. openAI发布v0.2.0了

    时隔20天,OpenAI从v0.0.1升级到了v0.2.0.与v0.0.1版相比,v0.2.0版主要做了以下改动: 把cmd目录下微信公众号的相关服务迁移到了这里 完善了cmd下的测试服务,针对ope ...

  2. 服务器重装ip未更改,ssh连不上(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED)

    服务器重装ip未更改,ssh连不上 前言 原因 解决方法 服务器重装ip未更改,ssh连不上 前言 重装了虚拟机,ip还保留了,但是发现连不上了 @@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  3. 【CSDN浏览器插件测评超详细版】——万能便捷的C功能,直接爱不释手,强烈推荐!更多功能等你探索

    我的界面预览: 1.下载安装 下载链接:https://plugin.csdn.net/?utm_source=chajian-contest-1210#/chrome-index-help 说明:若 ...

  4. C/C++ 实现FTP文件上传下载

    FTP(文件传输协议)是一种用于在网络上传输文件的标准协议.它属于因特网标准化的协议族之一,为文件的上传.下载和文件管理提供了一种标准化的方法,在Windows系统中操作FTP上传下载可以使用WinI ...

  5. 2.5 PE结构:导入表详细解析

    导入表(Import Table)是Windows可执行文件中的一部分,它记录了程序所需调用的外部函数(或API)的名称,以及这些函数在哪些动态链接库(DLL)中可以找到.在Win32编程中我们会经常 ...

  6. 模式识别实验:基于主成分分析(PCA)的人脸识别

    前言 本文使用Python实现了PCA算法,并使用ORL人脸数据集进行了测试并输出特征脸,简单实现了人脸识别的功能. 1. 准备 ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至 ...

  7. docker容器-乌班图安装vim

    apt-get update && apt-get install -y vim

  8. Matrix【未完成】

    Matrix The fitrst thing we do,let's kill all the language lawyers. -- Henry VI, Part II The "pr ...

  9. 《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(下)

    第 7 章 高级主题 7.4 HATEOAS 全称 Hypermedia AS The Engine Of Application State,即超媒体作为应用程序状态引擎.它作为 REST 统一界面 ...

  10. NC16641 [NOIP2007]守望者的逃离

    题目链接 题目 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒 ...