赞
踩
- #include <iostream>
- using namespace std;
-
- template<typename T>
- class A
- {
- public:
- A(T a)
- {
- this->a = a;
- }
- void printA()
- {
- cout<<"a:"<<a<<endl;
- }
- protected:
- private:
- T a;
- };
- //模板派生是需要具体化模板类 c++编译器需要知道 父类的数据类型具体是什么样的(派生类首先调用父类的构造函数)
- //=====》要知道父类所占内存大小是多少,只有数据类型固定下来,才知道如何分配内存
- class B:public A<int>
- {
- public:
- B():A(1)
- {
- this->a = 10;
- }
- void printA()
- {
- cout<<"a:"<<a<<endl;
- }
- protected:
- private:
- int a;
- };
-
- class B2:public A<float>
- {
- public:
- B2():A(1.2)
- {
-
- }
- protected:
- private:
- float c;
- };
-
- //类模板做函数参数
-
- void UseA(A<float> &a)
- {
- a.printA();
- }
-
- int main()
- {
-
- B b;
- b.printA();
-
- b.A::printA();
-
- system("pause");
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。