【C++单选题】 以下关于类模板说法错误的是()
A、类模板可以作为函数的参数,则该函数必定是函数模板。
B、一个类模板如果从普通类派生,但不能再派生类模板。
C、普通函数如果称为一个模板类的友元函数,则该函数是由这个模板类生成的所有类的友元函数。
D、从类模板实例化的每个模板类都拥有自己特定类型的数据成员,所以每个实例化的模板类都各自拥有自己的静态数据成员。
说明解释B和D
【C++单选题】 以下关于类模板说法错误的是()
A、类模板可以作为函数的参数,则该函数必定是函数模板。
B、一个类模板如果从普通类派生,但不能再派生类模板。
C、普通函数如果称为一个模板类的友元函数,则该函数是由这个模板类生成的所有类的友元函数。
D、从类模板实例化的每个模板类都拥有自己特定类型的数据成员,所以每个实例化的模板类都各自拥有自己的静态数据成员。
说明解释B和D
A. 类模板可以作为函数的参数,则该函数必定是函数模板。
这个说法是正确的。当一个类模板被用作函数的参数时,该函数也必须是一个函数模板。
B. 一个类模板如果从普通类派生,但不能再派生类模板。
这个说法也是正确的。在C++中,一个类模板不能从另一个类模板派生。它们是从普通类派生的。
C. 普通函数如果称为一个模板类的友元函数,则该函数是由这个模板类生成的所有类的友元函数。
这个说法也是正确的。如果一个普通函数被声明为模板类的友元函数,那么这个函数对于由该模板生成的所有类都是友元函数。
D. 从类模板实例化的每个模板类都拥有自己特定类型的数据成员,所以每个实例化的模板类都各自拥有自己的静态数据成员。
这个说法是错误的。静态数据成员在所有实例化的模板类中都是共享的。这意味着,如果你在模板类中定义了一个静态数据成员,那么所有由该模板实例化的类都将共享同一个静态数据成员。