类模板与继承
  TEZNKK3IfmPf 2023年11月13日 23 0

1、类模板从类模板派生

/*******************类模板从类模板派生**********/

#include <iostream>
using namespace std;

template <class T1,class T2>
class A{
T1 v1;
T2 v2;
public:
A(){cout<<"A!"<<endl;}
};

template <class T1,class T2>
class B:public A<T2,T1>{
T1 v3;T2 v4;
public:B(){cout<<"B!"<<endl;}
};

template <class T>
class C:public B<T,T>{
T v5;
public: C(){cout<<"C!"<<endl;}
};
int main()
{
B<int,double >obj1;
C<int> obj2;
return 0;
}

 

2、类模板由模板类派生

//类模板由模板类派生
#include <iostream>
using namespace std;

template <class T1,class T2>
class A{
T1 v1;
T2 v2;
public:
A(){cout<<"A!"<<endl;}
};
template <class T>
class B:public A<int,double >{ // A<int,double >是模板类
T v;
public:
B(){cout<<"B!"<<endl;}
};
int main()
{
B<char> obj1;
return 0;
}

3、类模板从普通类派生

#include <iostream>
using namespace std;
class A{
int v1;
public:
A(){cout<<"A!"<<endl;}
};
template <class T>
class B:public A{//所以从B实例化的类都以A为基类
T v;
public:
B(){cout<<"B!"<<endl;}
};

int main()
{
B<char> obj1;
return 0;
}

 

4、普通类从模板类派生

//普通类从模板类派生
#include <iostream>
using namespace std;
template <class T>
class A{
T v1;
int n;
public:
A(){cout<<"A!"<<endl;}
};
class B:public A<int> {
double v;
public:
B(){cout<<"B!"<<endl;}
};
int main()
{
B obj1;
return 0;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   19天前   24   0   0 C++
  TEZNKK3IfmPf   19天前   22   0   0 指针C++
  TEZNKK3IfmPf   2024年05月31日   23   0   0 算法C++
TEZNKK3IfmPf