首页 > 代码库 > c++ 派生类向基类转换的可访问性

c++ 派生类向基类转换的可访问性

对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白 一、派生类和基类之间的类型转换 首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已。 (1)派生类和基类的自动转换只针对指针或引用类型。 只有指针和引用支持自动类型转换,同时,也只有指针和引用才可以静态类型和动态类型不同,这两个配合就完成了c++的最重要的多态。 派生类到基类的自动类型转换也不是都能随便转换的。 1.如果派生类以public继承基类,则是is a关系,用派生类可以完成基类的所有功能,所以可以在任意地方将派生类自动转换成基类,注意,这里都是指指针或引用,而不是对象。 比如:class A{};class B:public A{} B b;void function(const A &); 就可以使用function(b),会默认把B类型转换成A类型。 (2)不存在从基类到派生类的隐式类型转换,注意是隐式。 (3)在对象之间不存在类型转换。