#include<iostream>
using namespace std;
template <typename T>
class Parent
{
public:
Parent(T p1)
{
this->p1 = p1;
}
void printP()
{
cout << "p1==" << p1 << endl;
}
protected:
T p1;
};
template <typename U>
class Child : public Parent <U>//这里的<>在parent前后都可以
{
public:
Child(U c1, U tem) :Parent <U> (tem)
{
this->c1 = c1;
}
void printC()
{
cout << " c1 = " << c1 << " tem = " << tem << endl;//不理解这里为什么会出现错误?
}
private:
U c1;
};
class B:public Parent<int>
{
public:
B(int b1, int p):Parent(p)
{
this->b1 = b1;
}
void printB()
{
cout << " b1 = " << b1 << " p1 = " << p1 << endl;
}
private:
int b1;
};
int main()
{
Child<int> h1(1, 3);
h1.printC();
h1.printP();
cout << " 我是漂亮的分割线\n";
B b1(2,5);
b1.printB();
b1.printP();
cout << " 我是漂亮的分割线\n";
Parent <char> a1(‘d‘);
a1.printP();
system("pause");
}
结果显示: error C2065: “tem”: 未声明的标识符
原文:http://www.cnblogs.com/xiaochige/p/6706356.html