网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
有如下类模板定义: template class BigNumber{ long n; public: BigNumber(T i):n(i

有如下类模板定义:

template<typename T>

class BigNumber{

long n;

public:

BigNumber(T i):n(i){}

BigNumber operator+(BigNumber B) {

return BigNumber(n+b.n);

}

}

已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。

A) b1+b2

B) b1+3

C) 3+b1

D) 3+3

A.

B.

C.

D.


参考答案

更多 “ 有如下类模板定义: template class BigNumber{ long n; public: BigNumber(T i):n(i 有如下类模板定义:template<typename T>class BigNumber{long n;public:BigNumber(T i):n(i){}BigNumber operator+(BigNumber B) {return BigNumber(n+b.n);}}已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。A) b1+b2B) b1+3C) 3+b1D) 3+3A.B.C.D. ” 相关考题
考题 有如下类模板定义: templatetypenameT classBigNumber{ longn; public; BigNumber{Ti}:n(i){} BigNumberoperator+(BigNumberb){ returnBigNumber{n+b.n); } }; 已知b1、b2是BigNumber的两个对象,则下列表达中踏误的是( )。A.b1+b2B.b1+3C.3+b1D.3+3

考题 阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:include<iostream.h>include<assert.h>template<class T>class List;template<class T>class ListNOde{friend (1);private:T data;ListNode<T> *link;public:ListNode():link(NULL)()ListNOde(const T item,ListNOde<T>*next=NULL):data(item),link(next){}};template<class T>class List{private:ListNode<T>*first;void createList(T A[],int n,int i,ListNOde<T>*p);void printList(ListNOde<T>*p);public:List();~List();friend ostream operator<<(ostream ost,List<T>L);friend istream operator>>(istream ist,List<T>L);};template<class T>istream operator>>(istream ist,List<T>1){int i,n; ist>>n;T A[n];for(i=0;i<n;i++) (2);createList(A,n,0,first);}template<class T>void List<T>::createList(TA[],int n,int i,ListNOde<T>* p){//私有函数:递归调用建立单链表if(i==n)p=NULL;else{p=new ListNode<T>(A[i]);assert(p !=NULL);createList((3));}}template<class T>ostream operator<<(ostream ost,List<T> L){(4);}template<class T>void List<T>::printList(ostream ost,ListNode<T>*p){if(p!=NULL){ost<<p->data;(5);}}

考题 若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。A) operator long()const;B) operator long(bigNumber);C) long operator long() const;D) long operator long(BigNumber);A.B.C.D.

考题 有如下的类的模板定义: template class MyClass { private:T number; public:MyClass( 有如下的类的模板定义:template <class T>class MyClass{private:T number;public:MyClass(T k);…};其中构造函数MyClass()用k的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义为【 】。

考题 有如下的类模板定义: templateclassMyClass{TYPE n; public:MyClass(TYPE k);… }; 有如下的类模板定义:template<typenameTYPE>classMyClass{TYPE n;public:MyClass(TYPE k);…};其中构造函数MyClass用的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义______。

考题 若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。A.operatorlong()const;B.operatorlong(BigNumber);C.10ngoperatorlong()const;D.10ngoperatorlong(BigNumber);

考题 下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。 include inelude 下列程序用于打印出ASCⅡ字符,其析构函数内的语句应为【 】。include<iostream. h>inelude<iomanip, h>template<class T>class Array{T * elems;int size;public:Array(int.s);~Array()T operator[](int)void perator=(T)};template<class T>Array<T>::Array(int s)size=s;elems=new T[size]for(int i=0;i<size;i++)elems[i]=0}template<celass T>Array<T>::~Array(){______template <class T>T Array<T>::operator[](int index){return elems[index];}template<class T>void Array<T>::operator=(T temp){for(int i=0;i<size;i++)elems[i]=temp;}void main(){int i,n=26;Array<int> arr1(n)Array<char> arr2(n)for(i=0;i<n;i++){ -.arr1[i]='a'+i;arr2[i]='a'+i;}cout<<"ASCII 字符"<<endl;for(i=0;i<n;i++)cout<<setw(8)<<arr1[i]<<setw(8)<<arr2[i]<<endl;}

考题 以下程序的执行结果是()。includetemplateclass Sample{ T n;Public: Samp 以下程序的执行结果是( )。 #include<iostream.h> template<class T> class Sample { T n; Public: Sample (T i){n=i;) void operator ++(); void disp() {cout<<"n="<<n<<endl;} }; template<class T> void Sample<T>:: opetatA.n=aB.a=OC.n=bD.a=b

考题 有如下类模板定义: templatetypenameT classBigNumber{ longn; public; BigNumber(Ti):n(i){} BigNumberoperator+(BigNumberb){ returnBigNumber(n+b.n): } }; 已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。A.b1+b2B.b1+3C.3+b1D.3+3