首页/ 题库 / [单选题]有如下程序: class Base1 {的答案

有如下程序: 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); //③ } 下面各项对语句①②③的描述中,正确的是( )。

单选题
2022-01-04 12:30
A、语句①②③都有二义性
B、语句①③有二义性,②没有二义性
C、语句①有二义性,②③没有二义性
D、语句①②有二义性,③没有二义性
查看答案

正确答案
B

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

标签:
感兴趣题目
下面程序运行的结果是( )。 #include<iostream> using namespace std; class A{ protected: int a; public: void input(int i) {a=i;} }; class B{ protected: int a; public: void input(int j) {a=j;} }; class C: public A, public B { int x; public: void input() {x=A::a * B::a;cout<<x<<endl;} }; void main() { C c; c.A::input(5); c.B::input(8); c.input(); }
设有如下程序:#include <iostream. h>class A{public:int i;display(){ cout<<"class A "; }};class B{public:int i;display(){ cout<<"class B "; }};class C: public: A, public: B{int j;public:int i;show(){ j=i*i; display(); }};void main(){C demo;demo. show();}则主程序运行时,将( )。
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp() { cout <<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<","; } }; class C: public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp() { A::disp(); B::disp(); cout<<c<<end1; } }; int main() { C obj (10); obj.disp(); return 0; } 程序执行后的输出结果是
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp () { cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp () { cout<<b<<","; } }; class C : public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp () { A::disp(); B::disp(); cout<<c<<endl; } }; int main() { C obj(10); obj.disp(); return 0; }
有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A (int i) { a=i; } void disp() { cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<","; } }; class C : public B,public A { private: int c; public: C(int k) :A(k-2),B(k+2) { c=k; } void disp () { A::disp (); B::disp (); cout<<c<<endl; } }; int main () { C obi (10); obj.disp (); return 0; } 程序执行后的输出结果是
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp() { cout<<a<<", "; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<", "; } }; class C : public B,public A { private: int c; public: C int k) :A(k-2),B(k+2) { c=k; } void disp() { A: :disp (); B::disp(); cout<<c<<end1; } }; int main () { C ebj (10); obj .disp (); return 0; } 程序执行后的输出结果是( )。
若类A和类B的定义如下: class A { public: int i,j; void get(); }; class B:A{ int i, j; protected; int k; public: void make(); }; void B: :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 } }; 则上述定义中
下面程序的结果是( )。 #include<iostream.h> class A { int a; public: A():a(1){} void showa(){cout<<a;} }; Class B { int a; public: B():a(2){} void showa(){cout<<a;} ); class C:public A,public B { int a; pu
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(im i) { a=i; } void disp() cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp0 { cout<<b<<","; } }; class C: public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp0 { A::disp(); B::disp(); cout<<c<<endl; } }; int main() { C obj(10); obj.disp(); return 0; } 程序执行后的输出结果是( )。
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: void seta(int x) { a=x; } void showa,( ) { cout<<a<<", "; } }; class B { private: int b; public: void setb(int x) { b=x; } void showb () { cout<<b<<", "; } }; class C : public A, private B { private: int c; public: void setc(int x,int y, int z) { c=z; sera (x); seth (y); } void showc() { showa(); showb(); cout<<c<<end1; } }; int main () { C c; c.setc(1,2,3); c.showc(); return 0; } 程序执行后的输出结果是( )。
下面程序的结果是 #include<iostream.h> class A { int a; public: A( ):a(1){} void showa( ){cout<<a;} }; class B { int a; public: B( ) :a(2) {}
相关题目
有如下程序: 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); //③ } 下面各项对语句①②③的描述中,正确的是( )。
下面程序运行的结果是( )。 #include<iostream> using namespace std; class A{ protected: int a; public: void input(int i) {a=i;} }; class B{ protected: int a; public: void input(int j) {a=j;} }; class C: public A, public B { int x; public: void input() {x=A::a * B::a;cout<<x<<endl;} }; void main() { C c; c.A::input(5); c.B::input(8); c.input(); }
下面程序的执行结果为 #include" iostream" using namespace std; class A { int a; public: void Seta(int x) { a=x;} void Display_a( ) { cout < < a < < end1;} }; class B { int b; public: void Setb(int x) { b=x;} void D
下面程序的执行结果为 #includ"iostream" using namespace std; class A { int a; public: void Seta(int x){a=x;} void Display_a(){cout<<a<<endl;} }; class B { int b; public: void Setb(int x){b=x;} void
下面程序的结果是( )。 #include<iostream.h> class A { int a; public: A():a(1){} void showa(){cout<<a;} }; Class B { int a; public: B():a(2){} void showa(){cout<<a;} ); class C:public A,public B { int a; pu
若类A和类B的定义如下: class A { int i, public: void get(); / /... }; class B:A//默认为私有派生 { int k; public: void make(); / /... }; void B: :make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
若类A和类B的定义如下: class A { int i,j; public: void get(); //… } ; class B:A//默认为私有派生 { int k; public: void make(); //… }; void B::make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
若类A和类B的定义如下: class A { public: int i,j; void get(); }; class B:A{ int i, j; protected; int k; public: void make(); }; void B: :make()(k=i*j;} 则其中 ______ 是非法的表达式。
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(im i) { a=i; } void disp() cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp0 { cout<<b<<","; } }; class C: public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp0 { A::disp(); B::disp(); cout<<c<<endl; } }; int main() { C obj(10); obj.disp(); return 0; } 程序执行后的输出结果是( )。
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp() { cout <<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<","; } }; class C: public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp() { A::disp(); B::disp(); cout<<c<<end1; } }; int main() { C obj (10); obj.disp(); return 0; } 程序执行后的输出结果是
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp () { cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp () { cout<<b<<","; } }; class C : public B,public A { private: int c; public: C(int k):A(k-2),B(k+2) { c=k; } void disp () { A::disp(); B::disp(); cout<<c<<endl; } }; int main() { C obj(10); obj.disp(); return 0; }
有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A (int i) { a=i; } void disp() { cout<<a<<","; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<","; } }; class C : public B,public A { private: int c; public: C(int k) :A(k-2),B(k+2) { c=k; } void disp () { A::disp (); B::disp (); cout<<c<<endl; } }; int main () { C obi (10); obj.disp (); return 0; } 程序执行后的输出结果是
若有以下程序: #include <iostream> using namespace std; class A { private: int a; public: A(int i) { a=i; } void disp() { cout<<a<<", "; } }; class B { private: int b; public: B(int j) { b=j; } void disp() { cout<<b<<", "; } }; class C : public B,public A { private: int c; public: C int k) :A(k-2),B(k+2) { c=k; } void disp() { A: :disp (); B::disp(); cout<<c<<end1; } }; int main () { C ebj (10); obj .disp (); return 0; } 程序执行后的输出结果是( )。
若类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, public: void get(); / /... }; class B:A//默认为私有派生 { int k; public: void make(); / /... }; void B: :make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
若类A和类B的定义如下: class A { int i,j; public: void get(); //… } ; class B:A//默认为私有派生 { int k; public: void make(); //… }; void B::make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
下面程序的执行结果为 #include" iostream" using namespace std; class A { int a; public: void Seta(int x) { a=x;} void Display_a( ) { cout < < a < < end1;} }; class B { int b; public: void Setb(int x) { b=x;} void D
下面程序的执行结果为 #includ"iostream" using namespace std; class A { int a; public: void Seta(int x){a=x;} void Display_a(){cout<<a<<endl;} }; class B { int b; public: void Setb(int x){b=x;} void
有如下程序: #include<iostream> using namespace std; Class TestClass {int a; public: TestClass(int x){a=x;} void show(){cout<<a;}}; class TestClass1:public TestClass {int b; public: TestClass1(int i):TestClass(i+1),b(i){} voi
有如下程序: 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); //③ } 下面各项对语句①②③的描述中,正确的是( )。
广告位招租WX:84302438

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