目录

C++中模板类的静态成员

为什么需要模板类的静态成员?

代码示例


C++中模板类的静态成员

为什么需要模板类的静态成员?

模板类的静态成员和普通类,普通函数的静态成员一样,我们想在函数调用后留些信息,而且这些信息随着函数调用的次数发生改变,也就说函数或者类对象执行完后,并没有完全消除而是留下了一下踪迹,比如:函数调用次数,对象声明次数……等等。以类为例,这些变量为静态变量,他在所有类对象中存在,我们可以再每个对象中对其作出修改,可以作为对象之间沟通的桥梁。

代码示例

主要展示了如何初始静态化成员和处理静态变量的静态成员函数

#include <iostream>
#include <string>
using namespace std;  template <typename Type1, typename Type2>
class Cstudent
{
private:  Type1 math;  static Type2 PersonNumber;
public:  static Type2 ShowNumber();  Cstudent(Type1 math)  {  this->math = math;  }  ~Cstudent()  {  cout << "调用析构函数" << endl;  }
};  template <typename Type1, typename Type2> Type2 Cstudent<Type1,Type2>::PersonNumber = 0;  // 类模板的成员变量初始化方式
template <typename Type1, typename Type2> Type2 Cstudent<Type1, Type2>::ShowNumber()  // 类模板的成员函数类外定义的方式
{  return ++PersonNumber;
}  int main()
{  int PersonNumber = 0;  Cstudent<string, int> stud("超级霸霸强");  PersonNumber = Cstudent<string, int>::ShowNumber();  cout << "学生总人数为" << PersonNumber << endl;
}  

注:模板类也是类,类的静态成员变量应该在类外初始化,静态成员函数应该在类外定义,且在类内声明。千万要注意静态成员变量在类体外定义的形式!

C++中模板类的静态成员相关推荐

  1. 在全局中调用类的静态成员函数

    在全局中直接调用类的静态成函数会产生重复声明错误. 例如: FooClass::FooStaticFunction(); 如果在全局中间接调用类的静态成员函数则不会产生错误,但是会产生多余的全局变量. ...

  2. C++中模板类使用友元模板函数 和友员非模版函数!使用不当出现编译错误:无法解析的外部符号…

    在c++海大本科课程设计的最后章节(模板使用 )中涉及到了在Mat类模板中定义友元函数friend Mat<T> operator+(Mat<T> &m, T num) ...

  3. C++中模板类中的成员函数以及模板函数在类外定义

    在C++中,类中的成员函数可以在类外完成定义,从而显得类中的成员函数看起来简洁明了.但是模板类里的成员函数和模板函数与普通的成员函数在类外定义不同. 先定义一个模板类以及成员函数和模板函数: 接下我们 ...

  4. C++11中模板类std::enable_shared_from_this的使用

    C++11中的模板类template <class T> class enable_shared_from_this功能:允许从std::enable_shared_from_this派生 ...

  5. java静态成员方法_关于java:在静态方法中访问类的静态成员

    我在java中有这个代码我用netbeans写它 class sample { public static int x; public int y; sample() { x=0; } } publi ...

  6. C++中模板类map常用示例

    #include <iostream> #include <map>using namespace std;int main() {/********************* ...

  7. Squirrel中的类与实例

    <!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if ...

  8. C++类的静态成员详细讲解

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

  9. C++ 类的静态成员详细讲解

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

最新文章

  1. java国际化程序创建属性文件,Java程序国际化学习代码一
  2. (JAVA学习笔记) 关于数据类型的一些扩展-面试时经常问到的问题
  3. excel如何做单元格下拉和根据文字自动变色
  4. 查询排序_Mysql在排序和查询时不使用索引的情况
  5. 论文浅尝 | 基于属性嵌入的知识图谱间实体对齐方法
  6. 计算机控制技术实际PID控制,计算机控制技术数字PID.doc
  7. 基于三维点云场景的语义及实例分割:RandLA-Net和3D-BoNet
  8. APPLE笔记本电脑软件测试,Apple Mac 实验室
  9. (转)某公司ICO涉嫌“擅自发行股票罪” 判处有期徒刑一年六个月
  10. 命令行编译java文件
  11. 怎样用python录音_python实现录音功能(可随时停止录音)
  12. 输入两个电阻的值a和b,求它们并联和串联的电阻值。求并联电阻公式:a*b/(a+b),求串联的公式为:a+b。
  13. Android sn 号修改
  14. Win10 永久关闭自动更新,禁止windows10自动更新
  15. cdr导出pdf是html的,CorelDraw 文件导出PDF CDR页码插件 忽略视图及颜色样式补丁
  16. python爬取招聘网站源码及数据分析_如何用爬虫抓取招聘网站的职位并分析
  17. 基于安卓的视频遥控小车——红外遥控部分
  18. 黄向东:工业物联网数据库 IoTDB及其应用
  19. fzu2190---非提的救赎 (单调栈)
  20. 算法实践-遗传算法GA

热门文章

  1. 三叠云福利抽奖活动!500份礼品免费送,超高中奖率
  2. 西门子S7-1200PLC和KTP700触摸屏控制松下伺服电机运动控制程序
  3. CPU安装双核补丁的重要性和安装方法
  4. 窗口 (好久没写了╮(╯▽╰)╭)
  5. linux的usb驱动失败,linux2.6.24下usb驱动完成情况及问题解决
  6. Webview 将浏览器作为golang的GUI
  7. 中国五大发电厂及下属电站
  8. 雷军:穿越人生低谷的感悟(节选)
  9. 用WinGrub 引导Linux 简述
  10. 乐享计算机会计学院,从ACCA到CPA,他在「财会路」上乐享前行