C++ 类模板三(类模版中的static关键字)
2016-07-11 22:28
260 查看
//类模版中的static关键字 #include<iostream> using namespace std; /* 类模板本质上是c++编译器根据类型参数创建了不同的类, c++编译器在利用类模板生成类的时候会为每个类生成一个static变量 那么对于类中的static关键字就非常好理解了 static关键字修饰的变量是属于类的 同一个类的对象共享类的static静态变量 类模板中的static修饰的变量数据类型必须是确定的 不可以是类型参数 因为静态变量在类对象之前初始化 这时候还没有通过类模板生成类类 */ template<typename T> class Point{ public: Point(T a,T b){ this->x = a; this->y = b; } static int total; static void Print(){ cout << "total=" << total << endl; } private: T x; T y; }; //类中静态变量唯一的初始化方式 template<typename T> int Point<T>::total = 10; void ProtectA(){ Point<int> p1(3,3); p1.total = 12; Point<int> p2(5, 5); Point<float> p3(4.0, 4.0); p3.total = 13; //同一个类共享一个静态变量 p2.Print(); //不同的类不会共享一个静态变量 Point<float>::Print(); } void main(){ ProtectA(); system("pause"); }
相关文章推荐
- C语言培训_007
- 【数字图像】BMP位图的头文件
- 【c++程序】全局变量和局部变量汇总
- C语言培训_006
- C++ 类模板二(类模版与友元函数)
- 《机器学习实战》第5章逻辑回归算法的C++实现方式
- c++代码习惯
- 初步了解c++的文件输入输出
- 大话设计模式———c++反射机制实现
- [c/c++]指针(2)
- HDU-2069-Coin Change
- [Reprint] C++函数模板与类模板实例解析
- 提高项目30.6-删除字符串前面的空格
- C++中union的使用
- C++中union的使用
- C语言Printf()&scanf() 学习笔记
- 【c++程序】C/C++中内存区域划分
- 全排列-字典序
- C++ 类模板一(类模板的定义)
- [c/c++]指针(1)