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

目录

 

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;  
}  

 

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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值