itgle.com

下列程序段不会发生二义性的是()。A、intfun(doublep){.;}B、intfun(floatp){.;}floatfun(floatp){.;}floatfun(unsignedp){.;}intx;intx;x=fun(0);x=fun(0);C、intfun(inti,intj=2){.;}D、intfun(inti=2,intj=2){.;}floatfun(inti){.;}intfun(int*p){.;}cout

题目
下列程序段不会发生二义性的是()。

A、intfun(doublep){.;}

B、intfun(floatp){.;}floatfun(floatp){.;}floatfun(unsignedp){.;}intx;intx;x=fun(0);x=fun(0);

C、intfun(inti,intj=2){.;}

D、intfun(inti=2,intj=2){.;}floatfun(inti){.;}intfun(int*p){.;}cout


相似考题
更多“下列程序段不会发生二义性的是()。 ”相关问题
  • 第1题:

    下列选项中不会引起二义性的宏定义是( )。A.defineS(x)x*xB.defineS(x)(x)*(x)SXB

    下列选项中不会引起二义性的宏定义是( )。

    A.#defineS(x)x*x

    B.#defineS(x)(x)*(x)

    C.#defineS(x)(x)*x

    D.#defineS(x)(x*x)


    正确答案:D
    本题考查参数的宏替换。为避免二义性有些参数表达式必须加括号,否则在实参表达式替换时,会出现错误。例如x为(m+n)时替换A:m+n*m+n,所以选项D最符合条件。

  • 第2题:

    对于下列程序段,没有二义性的表达式是() class A {public: int f(); }; class B {public: int g(); int f(); }; class C:public A,public B {public : int g(); h(); }; C obj;

    A.obj.f()

    B.obj.A::g()

    C.obj.B::f()

    D.obj.B::h()


    ass C:public A,public B{ public : int g( ) ; h( ) ; } ;

  • 第3题:

    从下列选项中选择不会引起二义性的宏定义是______。

    A.#define PLUS(a) a*a

    B.#define PLUS(a) (a)*(a)

    C.#define PLUS(a) (a*a)

    D.#define PLUS(a) ((a)*(a))


    #define POWER(x) (x)*(x)

  • 第4题:

    有如下程序: class Base1 { public: int a; void b() { return}; void c(float) { a=float;} }; class Base2 { public: void b(){} void c(){} private: int a; }; class Derived:public Basel,public Base2 { public: void b(){} }; void main() { Derived obj; obj.a=1; //① obj.b(); //② obj.c(10); //③ } 下面各项对语句①②③的描述中,正确的是( )。

    A.语句①②③都有二义性

    B.语句①③有二义性,②没有二义性

    C.语句①有二义性,②③没有二义性

    D.语句①②有二义性,③没有二义性


    正确答案:B
    解析:C++中二义性问题的检查在访问控制权限或类型检查之前进行,即访问权限的不同或类型不同不能解决二义性问题。所以语句①③有二义性。由于Derived中又重新定义了同名成员函数b(),所以b()函数的调用就不存在二义性问题。

  • 第5题:

    3、对于下列程序段,没有二义性的表达式是() class A {public: int f(); }; class B {public: int g(); int f(); }; class C:public A,public B {public : int g(); h(); }; C obj;

    A.obj.f()

    B.obj.A::g()

    C.obj.B::f()

    D.obj.B::h()


    ass C:public A,public B{ public : int g( ) ; h( ) ; } ;