类的成员模板的类内和类外定义方法
来源:互联网 发布:淘宝主机怎么那么便宜 编辑:程序博客网 时间:2024/06/07 15:12
#include "stdafx.h"
#include<iostream >
using namespace std;
//---------------------------------情况1: 类模板中成员模板的类体内定义方法:--------------------------------------------
template<typename T>//类模板
class A
{
public:
template<typename T1>//成员模板函数定义
T1 f()
{
T1 t = T1();
return t;
}
{}
class AA
{
};
};
//---------------------------------情况2: 类模板中成员模板的类体外定义方法:--------------------------------------------
template<typename T>
class B
{
public:
template<typename T1>//成员模板函数声明
T1 f();
B();
class BB;
};
//成员模板函数的类外定义。
template<typename T>
template<typename T1>
T1 B<T>::f()
{
T1 t = T1();
return t;
}
template<typename T>
B<T>::B()
{
}
//成员模板类的类外定义。
template<typename T>
template<typename T2>
class B<T>::BB
{
};
//---------------------------------情况3: 非类模板中成员模板类内定义--------------------------------------------
class C
{
public:
template<typename T1>//成员模板函数定义
T1 f()
{
T1 t = T1();
return t;
}
C() {}
template<typename T2>//成员模板类定义
class CC
{
};
};
//---------------------------------情况4: 非类模板中成员模板的类外定义方法--------------------------------------------
class D
{
public:
template<typename T1>//成员模板函数声明
T1 f();
D();
template<typename T2>//成员模板类声明
class DD;
};
//成员模板函数类外定义
template<typename T1>
T1 D::f()
{
T1 t = T1();
return t;
}
D::D()
{}
//成员模板类的类外定义
template<typename T2>
class D::DD
{
};
int main()
{
//-------------------1情况-------------------------
A<float> a;
cout<<a.f<int>()<<endl;
A<int>::AA<float > aa;
//-------------------2情况-------------------------
B<float> b;
cout << b.f<int>() << endl;
B<int>::BB<float > bb;
//-------------------3情况-------------------------
C c;
cout << c.f<int>() << endl; //非类模板的成员模板函数使用方法
C::CC<int> cc; //非类模板的成员模板类使用方法
//-------------------4情况-------------------------
D d;
cout << d.f<int>() << endl; //非类模板的成员模板函数使用方法
D::DD<int> dd; //非类模板的成员模板类使用方法
return 0;
}
0 0
- 类的成员模板的类内和类外定义方法
- 类的成员模板的类内和类外定义方法
- 模板类成员函数的定义和声明
- c# 类成员的定义 定义方法、字段和属性
- c# 类成员的定义 定义方法、字段和属性
- 函数模板和类模板成员函数的定义通常放在头文件中
- 一个猥琐的方法:解决模板类静态成员重定义的问题
- 类内定义的成员函数是内联函数
- 类模板中的函数模板的定义和调用(不是模板类中的普通成员函数)
- 类的静态数据成员在 类内只能声明,定义和初始化必须在类外
- 类的静态数据成员在 类内只能声明,定义和初始化必须在类外
- 成员的类模板
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 4.1 类和成员函数的定义
- 模板类和模板函数的声明和定义分开文件写的方法
- JS类定义:涵盖了javascript公有成员定义、私有成员定义、特权方法定义的简单示例
- java zip API实现压缩和解压缩zip包
- IOS开发之显示微博表情
- QT 读json格式配置文件的数据
- HBase初学-增删查改
- 车联网的现状
- 类的成员模板的类内和类外定义方法
- Spark程序运行常见错误解决方法以及优化
- Scala 学习(一)--- 方法和函数
- 稳定性测试方法之Monkey测试
- 欢迎使用CSDN-markdown编辑器
- 理解OAuth 2.0(转)
- 查看linux ssh服务信息及运行状态
- maven 常用命令
- DevExpress GridControl 设置某列不显示