基础和派生 class c++11

Base and derved class c++11

我有基础 class Aclass 和派生 class Bclass。如果我创建对象 Bclass b 并且如果我写 A &aref(b) 是 &aref 现在是 class A 或 class B 的对象?

&aref now object of a class A or class B?

你说的&aref有点含糊。不管怎么解释,它既不是A的对象,也不是B的对象。

aref 是一个变量。变量的类型是reference。它不是一个对象。更具体地说,它是对类型 A 的引用。但是,它指的是 B.

类型的对象 另一方面,

&aref 是使用寻址运算符 (&) 的表达式。该表达式的类型为指针,值为aref.

引用的对象地址

更技术地说,aref实际上直接引用类型A的对象,它是类型[=13的对象的父子对象=].但是从面向对象的角度来看,没有区别。