publicclassSyncTest{privateintx;privateinty;privatesynchronizedvoidsetX(inti){x=i;}privatesynchronizedvoidsetY(inti){y=i;}publicvoidsetXY(inti){setX(i);setY(i);}publicsynchronizedbooleancheck(){returnx!=y;}}Underwhichconditionwillcheckreturntruewhencalled

题目

publicclassSyncTest{privateintx;privateinty;privatesynchronizedvoidsetX(inti){x=i;}privatesynchronizedvoidsetY(inti){y=i;}publicvoidsetXY(inti){setX(i);setY(i);}publicsynchronizedbooleancheck(){returnx!=y;}}Underwhichconditionwillcheckreturntruewhencalledfromadifferentclass?()

A.checkcanneverreturntrue.

B.checkcanreturntruewhensetXYiscalledbymultiplethreads.

C.checkcanreturntruewhenmultiplethreadscallsetXandsetYseparately.

D.checkcanreturntrueonlyifSyncTestischangedtoallowxandytobesetseparately.


相似考题
更多“publicclassSyncTest{privateintx;privateinty;privatesynchronizedvoidsetX(inti){x=i;}private ”相关问题
  • 第1题:

    下列类的定义中,有( )处语法错误。 class Base { public: Base(){} Base(int i) { data=i; } private: int data; }; class Derive : public Base { public: Derive() : Base(0) {} Derive (int x) { d=x; } void setvalue(int i) { data=i; } private: d; };

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考核派生类的定义和成员的访问权限。第一处错误:在派生类的构造函数Derive(int x)中没有调用基类的构造函数对基类对象初始化;第二处错误:数据data是基类Base的私有成员,派生类Derive不能访问,所以在函数setvalue中对data的赋值是错误的。

  • 第2题:

    下列类的定义中,有( )处语法错误。 class Base { public: Base(){} Base(int i) { data=i; } private: int data; }; class Derive: public Base { public: Derive(): Base(0){} Derive(int x) { d=x; } void setvalue(int i) { data=i; } private: d; }

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考核派生类的定义和成员的访问权限。第一处错误:在派生类的构造函数Derive(intx)中没有调用基类的构造函数对基类对象初始化:第二处错误:数据data是基类Base的私有成员,派生类Derive不能访问,所以在函数setvalue中对data的赋值是错误的。

  • 第3题:

    有如下程序: #inClude<iostream> using namespaCe std; ClaSS A{ publiC: A(int i){x=i;} void dispa( ){Cout<<x<<’,’;} private: int x; }; Class B:publiC A{ publiC: B(int i):A(i+10){x=i;} vold dispb( ){dispa( );Cout<<x<<endl;} private: int x; }; int main( )} B b(2); b.dispb( ); return 0; } 执行这个程序的输出结果是( )。

    A.10,2

    B.12,10

    C.12,2

    D.2,2


    正确答案:C
    本题考查派生类的构造函数和基类的构造函数。本题中类B继承类A,定义了·个类B的对象并初始化b(2),此时会执行类B的构造函数,执行的结果是继承类A中的私有成员赋值了12,给类B自身的数据成员x赋值了2,执行b.dispb后,输出类A的私有成员x,输出类B自身的数据成员,所以答案为C。

  • 第4题:

    有如下程序;include using namespace std;class Base{public;Base(inti){x=i;}void d

    有如下程序; #include <iostream> using namespace std; class Base { public; Base(inti){x=i;} void dispa0{cout<<x<<',';} private; int x; }; class Derived;public Base { public; Derived(int i);Base(i+10) {x=i;) void dispb(){dispa();cout<<x<<end1;} private; int x; }; int main() { Derived b(2) ; b.dispb(); return 0; } 运行的结果是( )。

    A.2,2

    B.12,2

    C.12,10

    D.10,2


    正确答案:B
    解析:"Derived b(2) ;¨以整数2实例化变量b,在执行Derived的构造函数时,以i+10即12去调用类Derived的父类的构造函数,将Base::x初始化为12,然后将Derived::x赋值为2。在执行b.dispb()时,先调用父类中的dispa,输出Base::x,即12,再输出Derived::x,即2,所以运行结果为“12,2”。

  • 第5题:

    下列类的定义中,有( )处语法错误。 class Base { public: Base(){} Base(int i) { data=i; } private: int data; }; class Derive : public Base { public: Derive() : Base(O) {} Derive (int x) { d=x; } void setvalue(int i) { data=i; } private: int d; };

    A.1

    B.2

    C.3

    D.4


    正确答案:B
    解析:本题考核派生类的定义和成员的访问权限。第①处错误:在派生类的构造函数Derive(intx)中没有调用基类的构造函数对基类对象初始化。第②处错误:数据data是基类Base的私有成员,派生类Derive不能访问,所以在函数setvalue中对data的赋值是错误的。