a=b;//派生类对象赋值给基类对象 (但也只是将基类中所具有的成员变量做一个值上面的复制(赋值),派生类中所独有的成员变量是不会对基类产生作用. A&r=b;//派生类对象初始化基类引用 A*pa=&b;//派生类对象地址赋值给基类指针 B*pb=&b; pa=pb;//派生类指针赋值给基类指针 return0; } 1. 2. 3. ...
基类指针可以new派生类对象,因为派生类对象含有基类部分,所以我们可以把派生类对象当成基类对象来用;编译器内部做了隐式的派生类到基类的转换;这种转换的好处是有些需要用到基类引用/指针地方,可以用这个派生类对象的引用/指针来代替; 派生类构造函数 派生类实际使用基类的构造函数来初始化它的基类部分;基类控制基类部...
基类的对象可以赋值给派生类的对象 C. 派生类对象可以初始化基类的引用 D. 派生类的对象地址可以赋值给指向基类的指针 相关知识点: 试题来源: 解析 B 正确答案:B解析:赋值兼容规则:派生类的对象可以赋值给基类的对象;派生类对象可以初始化基类的引用;D)派生类的对象地址可以赋值给指向基类的指针。
类String拷贝构造函数与普通构造函数的区别是:在函数入口处无需与NULL进行比较,这是因为“引用”不可能是NULL,而“指针”可以为NULL。 类String的赋值函数比构造函数复杂得多,分四步实现: (1)第一步,检查自赋值。你可能会认为多此一举,难道有人会愚蠢到写出 a = a 这样的自赋值语句!的确不会。但是间接的自...
如果调用虚函数,则直到运行时才能确定调用哪个函数,运行的虚函数是引用所绑定或指针所指向的对象所属类型定义的版本。虚函数必须是基类的非静态成员函数。虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的...
l赋值兼容性: n 派生类对象可以赋给基类对象,反之不可 n 可将派生类对象的指针赋给基类型的指针变量 n 派生类对象可以初始化基类型的引用 n 通过基类指针(引用)只能访问从相应基类中继承来的成员,不允许访问派生类中的新增成员。 (13)虚基类:注意虚基类构造函数的调用 ...
//将子类类型的指针赋值给父类类型的指针dv.m_val=12;DERIVE_BASE(dv).m_val=0XAFff;Derive_Fun(bs);//模拟通过指向派生类的基类指针访问派生类成员函数Base_Fun(&DERIVE_BASE(dv));//这样我们可以访问这个子类所继承的基类的Fun函数Base_Fun(bs);//模拟通过指向派生类的基类指针访问基类成员函数getchar()...
静态联编中的赋值兼容性及名字支配规律 派生一个类的原因并非总是为了添加新的成员或成员函数, 有时是为了重新定义基类的成员函数。 在派生类有同名函数的情况下 Point * pPoint; // 声明的基类指针只能指向基类 Circle * pCircle // 声明的派生类指针只能指向派生类 ...
11、已知:print()函数是一个类的常成员函数,它无返回值,下 列表示中,()是正确的。 C.voidconstprint(); D.voidprint(const); 12、下面描述中,表达错误的是() A.公用继承时基类中的public成员在派生类中仍是public的 B.公用继承时基类中的private成员在派生类中仍是private的 ...
A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 9. 派生类对象可访问基类中的什么成员( A ) A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公有成员 10. ...