有以下程序: #include <iostream> using namespace std; template < class T > class TAdd { private: T x, y; p

admin2010-03-29  20

问题 有以下程序:    #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

答案1

解析 本题主要考察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。
转载请注明原文地址:https://jikaoti.com/ti/I5W0FFFM
0

最新回复(0)