[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNP0Vmoaq0VUujDJvh93qIaqwb7CWaOO2znajAkN9dQ8":3},{"answer":4,"createTime":5,"id":6,"options":7,"origin":12,"question":19,"related":20,"source":31,"type":32},[],"2023-06-09 23:14:38",56056935,[8,9,10,11],"class virtual B: public A { \u002F*略*\u002F }","class B: virtual public A { \u002F*略*\u002F }","class B: public A virtual { \u002F*略*\u002F }","virtual class B: public A { \u002F*略*\u002F }",{"count":13,"courseId":14,"courseImg":15,"courseName":16,"workId":17,"workName":18},45,"d546a0bff31cef9b5b42bef709a2e858","https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F4c7af9182a07a7f3cde94a24ba29ab4c.jpg","面向对象程序设计","work_27952034","05-08班第四次作业","下列对虚基类声明正确的是",[21,33,42,51,54,63,72,81,90,99],{"answer":22,"createTime":5,"id":23,"options":24,"question":30,"source":31,"type":32},[],56056932,[25,26,27,28,29],"\u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F051fc8c92fcc16b280b90fc21f3f9ce6.png\">","\u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F6758694f17f386e6080426082847036a.png\">","\u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F6d6c0af355458cf396051d553d2909af.png\">","\u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F1cd361aaf183127c548ce2cae3a96816.png\">","以上都不对","{ D d; return 0; }","v1",0,{"answer":34,"createTime":5,"id":35,"options":36,"question":41,"source":31,"type":32},[],56056933,[37,38,39,40,29],"该程序不存在问题,能够编译通过","该程序存在名字冲突问题,在(1)处增加1条语句using A::num;即可编译通过","该程序存在名字冲突问题,在(2)处将f( )修改为B::f( )即可编译通过","该程序存在名字冲突问题,在(1)处增加2条语句using A::num; using B::f( )即可编译通过","}}",{"answer":43,"createTime":5,"id":44,"options":45,"question":50,"source":31,"type":32},[],56056934,[46,47,48,49],"多重继承下,可能导致名字冲突","为了实现更加灵活的多态","C++不支持接口,故以虚基类作为补充","为了基类数据提供更好的保护","C++引入虚基类的机制是因为",{"answer":52,"createTime":5,"id":6,"options":53,"question":19,"source":31,"type":32},[],[8,9,10,11],{"answer":55,"createTime":5,"id":56,"options":57,"question":62,"source":31,"type":32},[],56056936,[58,59,60,61],"限定只能单继承","虚基类","限定多个基类中,至多只能有一个基类有实例变量","以上都包括","考虑到多重继承可能导致命名冲突问题,常见的解决方案是",{"answer":64,"createTime":5,"id":65,"options":66,"question":71,"source":31,"type":32},[],56056937,[67,68,69,70],"class Telephone { public: void callTo( ); void callBy( ); private: \u002F* 略 *\u002F }","class IComputer { public: static const int xx = 1; public: virtual ~IComputer( ); virtual void runApp( ); virtual void showVideo( ); }","class Mobile:public Telephone,public IComputer { public: void callTo( ); void callBy( ); virtual void runApp( ); virtual void showVideo( ); }","class Package { public: static void PackBinary( ); static void PackText( ); static void PackPicture( ); static int getVer( ); private: static int version; }","下面选项中最应该是工具类的是",{"answer":73,"createTime":5,"id":74,"options":75,"question":80,"source":31,"type":32},[],56056938,[76,77,78,79],"class C: public A {public: void fB( ); void fC( );private: B mb; }","class C: public B {public: void fA( ); void fC( ); private: A ma; }","class C: public A { public: void fC( );private: void fB( ); B mb; }","class C: public B {public: void fC( );private: void fA( ); A ma; }","已定义了类A、类B和类C,其中类C采用多重继承的方式,从类A和类B派生,如下:class A {public: void fA( );};class B {public: void fB( );};class C:private A, public B {public: void fC( );};那么若改类C为单继承,那么最合适的是",{"answer":82,"createTime":5,"id":83,"options":84,"question":89,"source":31,"type":32},[],56056939,[85,86,87,88],"D中的两个f函数,是以重载的形式出现的,不用虚基类也没问题,因此解决函数冲突不是虚基类的主要目的","虚基类本质上是解决地址冲突的问题.实际上虚基类在改变了对象存储结构的同时,也采用类似的方法,改变了函数的存储结构","D中两个a,同名但地址不同;但D中两个f函数,同名而且实际地址也相同的.因此解决实例变量的地址冲突问题成为虚基类的主要目的","D中两个a分别来自类B和类C,其类型、大小可能会不同;但D中两个f函数的内部表示都是指针,大小固定.因此解决实例变量的地址冲突问题成为虚基类的主要目的","多重继承会产生命名冲突,例如在如下的菱形结构中:struct A { void f( ); int a;};struct B:public A { void g( ); int b;};struct C: public A { void h( ); int c;};struct D: public B, public C { void k( ); int d;};采用虚基类会改变D类对象的存储结构,但对于D中成员函数 f 的命名冲突并没有过多的处理.C++语言这样做一定是有道理的,那么合理的说法是",{"answer":91,"createTime":5,"id":92,"options":93,"question":98,"source":31,"type":32},[],56056940,[94,95,96,97],"该程序的输出结果为: 6 6 6 6 3.14","该程序的输出结果为: 0 0 0 6 3.14","该程序的输出结果为 0 0 0 6 0","在(1)处增加语句Shape&amp; rc=cir; rc.Draw( ); 则该程序的输出结果为: 0 0 0 6 3.14 a circle","假设存在下面代码,选项中说法正确的是: \u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F66e3c9208d92271547cc6e2bbee85e10.png\">",{"answer":100,"createTime":5,"id":101,"options":102,"question":107,"source":31,"type":32},[],56056941,[103,104,105,106],"静态编联也称为晚绑定、静态绑定","静态编联是运行期间决定具体调用哪个函数体","动态编联是编译期间就决定了程序运行时将具体调用哪个函数体","动态编联通常是以虚机制来实现的","下列说法中正确的是"]