C++中的typename和class是两个关键字,它们都是用来声明类型的,但它们的使用场景不同。
typename的使用场景
typename可以用来表示模板参数,比如模板类型参数。它可以在模板参数列表中用来声明类型,也可以在模板类型参数中用来声明类型。例如:
templateclass MyClass { T data; };
这里,typename用来声明模板参数T,T可以是任意类型,比如int、char等。
Class的使用场景
Class可以用来声明类型,比如类、结构体、枚举等。它可以用来声明一个新的类型,也可以用来声明一个类的子类。例如:
class MyClass { public: int data; }; class MySubClass : public MyClass { public: int data2; };
这里,class用来声明MyClass和MySubClass两个类。MySubClass继承自MyClass,MySubClass也是一种类型。
typename和class的使用场景不同。typename用来声明模板参数,而class用来声明类型。