问题
单项选择题
有以下程序:
#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。