首页/ 题库 / [单选题]有如下类定义: class AA { i的答案

有如下类定义: class AA { int a; public: int getRef()const{return &a;} //① int getValue()const{return a;) //② void set(int n)const{a=n;} //③ friend void show(AAaa)const{cout<<a;} //④ }; 其中的四个函数定义中正确的是

单选题
2022-01-04 02:45
A、①
B、②
C、③
D、④
查看答案

正确答案
B

试题解析
解析:本题考查了常成员函数和友员函数的一些概念。getRef()函数返回的是a的地址值&a,而函数类型却定义为int,C++中不允许隐式的将一个地址值类型转换为int类型,故选项A不正确。set()函数被定义为常成员函数,但在函数中给a赋值,改变了数据成员的值这是不允许的,故选项C错误。show()函数被定义为AA类的友员函数,它不属于AA类而是一个全局函数。所以同时被定义为常成员函数是错误的。所以选项D不正确。故应该选择B。

标签:
感兴趣题目
有如下程序: #include<iostream) using namespace std; class AA{ int n; public: AA(int k):n(k){} int get(){return n;} int get()const{return n+1;} }; int main() { AA a(5); const AA b(6); COUt<<A.get()<<b.get(); return 0
有如下类定义: class AA{ int a; public: int getRef( )eonst{return &a;} //① int getValue( )const{return a;} //② vold set(int n)eonst{a=n;} //③ friend void show(AA aA) eonst{tout<<a;} //④ }; 其中的4个函数定义中正确的是
有如下类定义: class MyClass{ int value; public: MyClass(int n):value(n){} int getValueconst{retum value;} }; 则类MyClass的构造函数的个数是( )。
有如下类定义: ClaSS MyClass{ int value; public: MyClass(int n):value(n){ } int getValue( )const{return value;} l; 则类MyClass的构造函数的个数是
若类A和类B的定义如下: #include<malloc.h> class A { int i*j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j; } ); 则上述定义中非法的表达式是( )。
若类A和类B的定义如下; class A { int i,j; public: int geti() { return i; } }; clasS B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j } }; 则上述定义中
若类A和类B的定义如下: #include<malloc.h> class A { int i,j; public: int geti() { return i; } }; class B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
若类A和类B的定义如下: class A { int i,j; public: int geti () { return i; } }; class B : public A { int k; public: void make () { k=i*j; } }; 则上述定义中非法的语句是
若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B : public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
已知一个类A的定义如下,则执行“Ax(3); ”语句后,x.a和x.b的值分别为 ______。 class A { int a, b; public: A(int aa=1,int bb=0){a=aa;b=bb} ; }
类MyClas的定义如下: class MyClas{ public: MyClas(){} MyClas(int a){ value=new.int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中正确的是( )
相关题目
若类A和类B的定义如下: #include<malloc.h> class A { int i*j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j; } ); 则上述定义中非法的表达式是( )。
若类A和类B的定义如下; class A { int i,j; public: int geti() { return i; } }; clasS B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j } }; 则上述定义中
若类A和类B的定义如下: #include<malloc.h> class A { int i,j; public: int geti() { return i; } }; class B:public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
若类A和类B的定义如下: class A { int i,j; public: int geti () { return i; } }; class B : public A { int k; public: void make () { k=i*j; } }; 则上述定义中非法的语句是
若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B : public A { int k; public: void make() { k=i*j; } }; 则上述定义中非法的表达式是( )。
类 Contain 的定义如下: class Contain { private: int x; protected: int z; public: class Embed { private: int y; public: Embed ( ) { y=100; } int Embed_Fun(); }MyEmbed; int Contain_Fun(); }; 下列对上面定义的描述中,正确的是( )。
有如下类说明: class TestClass{ int x; public: TestClass(int n){x=n;} }; class TestClass1:public TestClass{ int y; public: TestClass1(int a,int b); }; 在构造函数TestClass1的下列定义中,正确的是( )。
有如下类声明: class XA { int x; public: XA(int n){x=n;} }; class XB:public XA { int y; public: XB(int a,int b); }; 在构造函数XB的下列定义中,正确的是
有如下类声明: class XA{ int X; public: XA(int n){x=n;} }; class XB:public XA{ int y; public: XB(int a,int b); }; 在构造函数XB的下列定义中,正确的是( )。
有如下类声明: class XA{ int X; public: XA(int n){x=n;} }; class XB:publicXA{ int y; public: XB(int a,int b); ); 在构造函数XB的下列定义中,正确的是( )。
有如下类声明: class XA{ int x; public: XA(int n){x=n;} }; class XB:public XA{ int y; public: XB(int a,int b); }; 在构造函数XB的下列定义中,正确的是( )。
有如下类定义: class AA { int a; public: int getRef()const{ return &a; } //① int getValue()const{ return a; } //② void set(int n)const{ a=n; } //③ friend void show(AA aa)const{ cout<<a; } //④ }; 其中的四个函数定义中正确的是( )。
有如下类定义;class AA{int a;public:int getRef()const{ return &a; }//①int getValue()const{ return a; }//②void set(int n)const{ a=n; }//③friend void show(AA aa)const{ cout<<a; )//④};其中的四个函数定义中正确的是( )。
有如下类定义: class AA { int a; public: int getRef()const{return &a;} //① int getValue()const{return a;) //② void set(int n)const{a=n;} //③ friend void show(AAaa)const{cout<<a;} //④ }; 其中的四个函数定义中正确的是
有如下类定义: class Test { private int x; public int y; public void setX (int m) {x=m;} public int getX( ) {return x;} }现用Test t=new Text();生成一个对象t,则如下语句中,错误的是( )。
类A及其派生类B定义如下:class A{ public int getInfo(int a) { return a; }}public class B extends A{ public float getInfo(int b) { return b; } public static void main(String[]args) { A a=new A(); B b=new B(); System.out.println(a.getInfo(3)+","+b.getInfo(5)); }}关于上述程序代码的叙述中正确的是 ( )
如下的类定义,括号里应填( )。 class Myclass { public: MyClass(int a =0,int b =0) { X=a; Y=b; void Change ( ) const { X- =10; Y+ =10; public: ( )int X,Y;
有如下程序: #include<iostream> using namespace std; class AA{ int n; public: AA(int k):n (k){} int get(){return n;) int get()const{return n+1;} }; int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; } 执行后的输出结果是
有如下程序: #include <iostream> using namespace std; class AA{ int n; public: AA(int k):n (k) { } int get(){return n; } int get()const{return n+1;} } int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; } 执行后的输出结果是( )。
广告位招租WX:84302438

免费的网站请分享给朋友吧