以下类的定义是正确的。 class MyClass { int var=100; static int getVar() { retur。()此题为判断题(对,错)。

题目
以下类的定义是正确的。 class MyClass { int var=100; static int getVar() { retur。()

此题为判断题(对,错)。


相似考题
更多“以下类的定义是正确的。 class MyClass { int var=100; static int getVar() { retur。() ”相关问题
  • 第1题:

    类MyClass的定义如下,若要对value赋值,则下面语句正确的是( )。 class MyClass { public: MyClass(){} MyClass(int i){value=new int(i);} int*value; };

    A.MyClass my;my.value=10;

    B.MyClass my;*my.value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D
    解析:因题目中定义的指针value是指向变量i的,所以直接利用语句MyClass(int i){value=new int (i);}对Value进行赋值即可。

  • 第2题:

    有如下程序: include using namespace std; class MyClass { public:

    有如下程序: #include <iostream> using namespace std; class MyClass { public: MyClass() { ++count; } ~MyClass() { --count; } static int getCount() { return count; } private: static int count; }; int MyClass::count=0; int main() { MyClass obj; cout<<obj.getCount(); MyClass *ptr=new MyClass; cout<<MyClass::getCount(); delete ptr; cout<<MyClass::getCount(); return 0; }程序的输出结果是

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    解析:本题考查的知识点是:静态成员。对于类中的非静态数据成员,每一个类对象都拥有一个拷贝(副本),即每个对象的同名数据成员可以分别存储不同的数值,这是保证每个对象拥有区别于其他对象的特征的需要。而类中的静态成员则是解决同一个类的不同对象之间的数据和函数共享问题的。静态成员的特性是不管这个类创建了多少个对象,它的静态成员都只有一个拷贝(副本),这个副本被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的原则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第2次输出结果是2。接下来是用delete删除了刚才动态创建的MyClass对象,析构函数被调用,count减1变为1,第3次输出1。故本题的输出为121,选项A正确。

  • 第3题:

    有如下类定义: class MyClass{ int value; public: MyClass(int n):value(n){} int getValueconst{retum value;} }; 则类MyClass的构造函数的个数是( )。

    A.1个

    B.2个

    C.3个

    D.4个


    正确答案:B
    本题考查类的默认构造函数和自定义的构造函数、本题中MyClass(intn):value(n){}为自定义的构造函数,加上默认构造函数,一共有2个构造函数。

  • 第4题:

    有以下程序:includeusing namespace std;class MyClass{public: MyClass(); ~MyClass

    有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(); ~MyClass(); void SetValue(int val); private: static int i; }; int MyClass::i=0; MyClass::MyClass() { i++; cout<<i; } MyClass::~MyClass() { i--; cout<<i; } void MyClass::SetValue(int val) { i=val; } int main() { MyClass*my[2]; int k; for(k=0;k<2;k++) my[k]=new MyClass; for(k=0;k<2;k++) delete my[k]; return 0; } 运行后的输出结果是( )。

    A.1210

    B.1100

    C.1234

    D.输出结果不确定


    正确答案:A
    解析:类MyClass中变量i是静态数据成员,它被MyClass类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序i是用来统计类MyClass所创建对象的个数,每创建一个对象i加1,每删除MyClass类对象i减1。

  • 第5题:

    下列程序的执行结果是【 】。 include < iostream. h> class Myclass { public: void GetSum(int a)

    下列程序的执行结果是【 】。

    include < iostream. h>

    class Myclass

    {

    public:

    void GetSum(int a)

    static int Sum:

    private:

    int A;

    };

    int Myclass:: Sum =10; //必须在类外部对静态数据成员初始化

    void Myelass: :GetSum(int a)

    {

    A=a;

    Sum+=A;

    }

    void PrintSum(Myclass& A)

    {

    cout<<"Sum="<<A.Sum<<end1;

    }

    void main( )

    {

    Myclass M,N;

    M. GetSum(3)

    N. GetSum(7)

    PrintSum(M);

    }


    正确答案:sum=20
    sum=20 解析:本题考察静态数据成员在同类的不同对象间的数据传递功能。Sum为所有对象的公共数据,M对象和N对象分别对sum进行累加,故结果为20。

  • 第6题:

    下列程序的执行结果为______。 include class Myclass { public: void GetSum(int a)

    下列程序的执行结果为______。

    include<iostream.h>

    class Myclass

    {

    public:

    void GetSum(int a);

    static int Sum;

    prtvate:

    int A;

    };

    int Myclass::Sum=10;//必须在类外部对静态数据成员初始化

    void Myclass::GetSum(int a)

    {

    A=a;

    Sum+=A:

    }

    vold PrintSum(Myclass& A)

    {

    cout<<"Sum="<<A. Sum<<endl;

    }

    void main( )

    {

    Myclass M,N;

    M.GetSum(3);

    N.GetSum(7);

    PrintSum(M);

    }


    正确答案:sum=20
    sum=20 解析:本题考察静态数据成员在同类的不同对象间的数据传递功能。Sum为所有对象的公共数据,M对象和N对象分别对sum进行累加,故结果为20。

  • 第7题:

    有如下类的定义。那么空格处的语句是( )。 class MyClass { ____________int x,y; public: MyClass(int x1=0,int y1=0) { x=x1; y=y1; } static void change() { x+=10; y+=10; } };

    A.static

    B.const

    C.private

    D.不需要填入内容


    正确答案:A
    解析:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。本题程序中把成员函数change()定义成静态成员函数。由于静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。所以类的数据成员x和y也必须定义成静态数据成员。

  • 第8题:

    下面类的定义,有( )处错误。 class MyClass { public: void MyClass(); ~MyClass(int Value); private: int i=0; };

    A.1

    B.2

    C.3

    D.4


    正确答案:C
    解析:上述类的定义共有3处错误。第一处:类的成员变量不能在定义时进行初始化:第二处:类的构造函数不能有返回值(包括void类型);第三处:类的析构函数不能有参数。

  • 第9题:

    如下的类定义,错误的语句是( )。class Myclass {public: int a=1; //A) Myclass( ); //B) Myclass(int i); //C) ~Myclass( ); //D)

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    解析:类中的数据成员不能在定义类时直接赋初值。

  • 第10题:

    有如下程序:includeusing namespace std;class MyClass{public:MyClass(){++count;}~

    有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(){++count;} ~MyClass(){--count;} static int getCount(){return count;} private: static int count; }; int MyClass::count=0; int main(){ MyCl

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    解析: 本题考查的知识点是静态成员。类中的静态成员是解决同—:个类的不同对象之间的数据和函数共享问题的。静态成员被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的厚则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第2次输出结果是2。接下来是用dilete删除了刚才动态创建的MyClass对象。析

  • 第11题:

    有如下程序: #inClude<iostream> using namespaCe耐: Class MyClass{ publiC: MyClass{++Count;} ~MyClass{--Count;} statiC int getCount{retum Count;} private: statiC int Count; }; ‘ int MyClass::Count=0; int main { MyClass obj; Cout<<obj.getCount; MyClass+ptr=new MyClass: Cout<<MyClass::9etCount; ’delete ptr; Cout<<MyClass::9etCount; return 0; } 执行这个程序的输出结果是( )。

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    本题考查静态数据成员。静态数据成员在内存中只占一份空间,静态数据成员属于类,即使不定义对象,也会给静态数据成员分配空间,可以被引用。本题中先是定义了一个对象obj,执行构造函数使得静态数据成员count变为了l,然后又定义了指针对象,执行构造函数后,count变为了2,释放指针后,执行析构函数,使得count变为了1。所以本题答案为A。

  • 第12题:

    对于下面定义的类MyClass,请在函数f( )中添加对象成员把n的值修改为50。

    class MyClass

    {

    public:

    MyClass(int x){n=x;}

    void SetNum(int n1){n=n1;}

    private:

    int n;

    };

    void f()

    {

    My Class*ptr=new MyClass(45);

    【12】

    }


    正确答案:
    ptr->SetNum(50);

  • 第13题:

    有如下类定义: ClaSS MyClass{ int value; public: MyClass(int n):value(n){ } int getValue( )const{return value;} l; 则类MyClass的构造函数的个数是

    A.1个

    B.2个

    C.3个

    D.4个


    正确答案:A
    解析:对于类的构造函数,如果有显式定义,那么在构造该类对象时就自动调用显式定义的构造函数,否则系统将给类一个默认的空构造函数。

  • 第14题:

    有以下类定义 class MyClass { private: int id; Char gender; Char*phone; public: MyClass():id(0),gender(‘#’),phone(NULL){} MyClass(int no,charge=’#’,char*ph=NULL) {id=no;gender=ge;phone=ph;} ); 下列类对象定义语句中错误的是( )。

    A.MyClass myObj;

    B.MyClass myObj(11,”13301111155”);

    C.MyClassmyObj(12,’m’);

    D.MyClassmyObj(12);


    正确答案:B
    解析: 本题考查构造函数的应用。对象建立用初始化列表对数据成员进行时,列表中的参数类型要与构造函数中形参类型一致。B选项中第二个参数为”13301111155”是字符串,而构造函数中第二个形参为char型,两者不一致造成错误。

  • 第15题:

    下面是类MyClass的定义,对定义中各种语句描述正确的是( )。

    class MyClass { publiC: void MyClass(int a) //①

    { x=a; ) int func(int a,int b) //②

    { x=a; y=b; } int func(int a,int b,int c=0) //③

    { x=a; y=b; z=c; } static void resetValue() //④

    { x=0; } private: int X,y,Z; };

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量x的清零操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:类的构造函数没有返回类型,所以语句①是错误的;语句②和语句③将会使函数func()的调用产生歧义;成员函数resetValue()是静态成员函数,那么它不能访问类MyClass中的非静态数据成员,所以语句④也不正确。

  • 第16题:

    有如下类的定义。应在空格处填入的语句是 ( )。 class MyClass { ______________ int x, y; public: MyClass(int a=0,int b=0) { x=a; y=b; } static void change{) { x-=10; y-=10; };

    A.static

    B.const

    C.mutable

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态成员函数的使用。由题可知,函数change()为类MyClass的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词static。调用静态成员函数的格式如下:类名::静态成员函数名(参数表);静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量x和y只能是类MyClass的静态数据成员,所以x和y的定义为“staticintx,y;”。

  • 第17题:

    下列程序段中,正确的是______。 ①class MvClass { int var = 100; static int getVar() { return var; } } ②public class MyClass { final int date; void MyClass (int d) { date = d; } } ③public class MyMain { public static void main(String args[]) { System.out.println(Myclass1.date); } } class MyClass1 { int data = 10; } ④class IamAbstract { final int f; double d; abstrct void method(); }

    A.②④

    B.①③

    C.②

    D.以上都不对


    正确答案:D

  • 第18题:

    类的说明如下,请指出错误的地方 ______。 class Myclass { int a=111; public: Myclass(int x, int y); Myclass(int val); ~Myclass(); }

    A.int a=111;

    B.Myclass(Int x, int y);

    C.Myclass(int val);

    D.~Myclass();


    正确答案:A

  • 第19题:

    下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,

    A.语句①是类MyClass 的构造函数的定义

    B.语句②和③实现类成员函数的重载

    C.语句④实现对类成员变量x的更新操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:在C++中构造函数没有返回类型,所以语句①是错误的。语句②和语句③在进行f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。

  • 第20题:

    若有以下程序:include using namespace std;class myClass{private: int var;public:

    若有以下程序: #include <iostream> using namespace std; class myClass { private: int var; public: myClass(int i) { var=i; } void add() { s+=var; } static int s; void display() { cout<<s<<end1; } }; int myClass::s=0; int main ( ) { myClass a(1),b(2),c(3); a.add(); b.add(); c.dislay(); return O; } 程序执行后的输出结果是( )。

    A.1

    B.4

    C.3

    D.7


    正确答案:C
    解析:本题考核静态数据成员的应用。解本题的关键是知道静态数据成员类中所有对象共享的成员。每个对象对静态数据成员的操作具有叠加效果。本题在类myClass中定义了一个静态数据成员s,其初始值为0。定义了3个对象a、b和c,并分别初始化各自的私有成员n为1、2和3。执行“a.add();”语句后,静态数据成员s=1。再执行语句“b.add();”后,s的值变为3。最后执行输出语句“c.display();”,即输出s的值7。

  • 第21题:

    有如下类的定义。空格处的语句是class MyClass{ ______ int x, y;public: MyClass(int a=0, int b=0) { x=a; y=b; } static void change() { x-=10; y-=10; }};

    A.static

    B.const

    C.private

    D.不需要填入内容


    正确答案:A
    解析:本题考核静态数据成员和静态成员函数。类的静态成员函数只可以直接访问类中的静态成员,不能直接访问类中的非静态成员。对于上述类的定义,由于在静态成员函数 change()访问了类MyClass的数据成员x和y,只能把x和y定义为静态数据成员。

  • 第22题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i) { value=new int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中,正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my,value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D

  • 第23题:

    下面是类MyChss的定义,对定义中语句描述正确的是( )。class MyClass{public:void MyClass(int a){X=a;) //①int f(int a, int b) //②{X=a;Y=b;}int f(int a,int b,int c=0) //③{X=a;Y=b;Z=c;stahc void g (){X=10;) //④private:int X,Y,Z;};

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量X的更新操作

    D.语句①②③和④都不正确


    正确答案:D