在C++ 中,父类不能直接调用子类的方法。这是因为父类并不知道它的子类有哪些方法,也不知道这些方法的实现细节。如果是通过父类指针指向子类对象来调用函数,那么调用的函数取决于该函数是否是虚函数。如果是虚函数,那么将调用子类中重写的虚函数;否则将调用父类中的函数。 然而,父类可以定义虚函数(virtual function)...
(1)父类的public成员成为子类的private成员,只允许子类成员访问; (2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员; (3)父类的protected成员成为子类的private成员,只允许子类成员访问; 其实这些都很有的规律的,子类public时表示最大的继承权限是public,所以子类按照原样继承,子类protected继承...
综上可以得出,初始化顺序:父类构造函数–>成员类对象构造函数–>自身构造函数其中成员变量的初始化与声明顺序有关,构造函数的调用顺序是类派生列表中的顺序。析构顺序和构造顺序相反。 简述下向上转型和向下转型 子类转换为父类:向上转型,使用dynamic_cast(expression),这种转换相对来说比较安全不会有数据的丢失; 父...
C protected 同一包下 或其子类可以访问 D 友好(默认)同一包下的类可以访问
但是父类的指针或引用可以指向子类对象。 子类对象的指针或引用不能指向父类对象。 不过还是假的,因为虽然是指向子类的,但是用不了子类的东西。 上面这些可能只是C++的一些规定,开发人员可能是为了避免一些问题。上面还看到->也是可以前面加上地址调用类的属性和方法的。子类里面如何使用父类的一些属性的方法,就是用...
对一个类的继承也就是构建了一个子类,子类继承了父类的方法和状态,同时还可以向新类中增添新的方法和状态。子类方法的访问权限比父类访问权限高,因此父类不能替代子类,但子类可以代替父类,选项A、选项B、选项C正确。结果一 题目 下列叙述中,错误的是 A.父类不能替代子类B.子类能够替代父类C.子类继承父类D...
下列关于父类成员的访问权限的描述中,正确的是()A.子类可以继承父类中的所有成员B.子类可以继承父类中除构造方法之外的所有成员C.子类可以继承父类中除private 外的
多态的常规用法:用一个父类的指针去调用子类中被重写的方法。 #include <iostream> using namespace std; class base { public: virtual void go(); }; void base :: go () { cout << "base.go" << endl; } class sub : public base { public: virtual void go(); }; void sub :: go ()...
百度试题 结果1 题目下面叙述中,错误的是( )。 A. 子类继承父类 B. 子类能替代父类 C. 父类包含子类 D. 父类不能替代子类 相关知识点: 试题来源: 解析 ( C )。 反馈 收藏
- 不论子类B以何种方式继承父类A,在子类B的成员函数和子类B的友元(非用户代码)里,父类A的所以成员的属性是不发生变化的,所以转化后,还是可以用父类A的对象,访问父类A的public成员。 classBase{public:voidpub_mem(); protected:intprot_mem; private:charpri_mem; ...