问题 单项选择题

有以下程序: #include <iostream> using namespace std; template < class T > class TAdd { private:T x, y; public:TAdd( T a, T b ){ x = a; y = b;}T add(){ return x + y;} }; int main () {TAdd < int > A( 5, 6 );TAdd< double > B( 2.4, 5.6 );cout<<A, add () <<", "<<B. add () <<end1;return 0; } 执行后的输出结果是( )。

A.11,8

B.5,6

C.2.4,5.6

D.8,11

答案

参考答案:A

解析: 本题主要考察C++中模板类的定义和使用。程序首先定义了模板类TAdd,类型标识符为T,其内私有数据成员为T数据类型的x和y,公有成员函数为构造函数和返回值为T数据类型的add(),其功能为返回x和y之和。 在主函数中,程序通过模板类实例化了两个对象A和B,其中对象A实例化过程中,将类型标识符T具体化为血型,因此A.add()函数返回值为int型,并返回其数据成员x和y的初始化值之和,为5+6=11;程序实例化的第2个对象B实例化过程中,将类型标识符T具体化为double型,同上,其成员函数B.add()返回值也为double型,并返回其数据成员初始化值加和,即为2.4+5.6=8。

选择题
单项选择题