在调用一个形参类型为派生类引用的函数时,可以将一个基类对象作为实参
时间: 2024-05-28 21:13:00 浏览: 26
可以,但是需要注意的是,这个基类对象在传递给函数时会隐式地转换为派生类对象的引用。因此,函数中使用的是派生类对象的成员函数和数据成员。但是,如果派生类中新增了成员函数或数据成员,基类对象就无法访问这些新增的成员。同时,如果基类对象中的某些成员在派生类中被重定义,那么调用函数时会调用派生类中的函数,而不是基类中的函数。因此,在使用基类对象作为函数实参时,需要注意函数是否需要访问派生类中新增的成员或重定义的成员。
相关问题
一个函数的形参是基类的引用,那么调用时向其中传入派生类时,时如何达到多态的
效果的?
当一个函数的形参是基类的引用时,如果我们向其中传入派生类的对象,则会发生向上转型,即将派生类的对象转换为基类的对象。由于基类是多态的,在运行时可以动态绑定到派生类的函数,因此调用该函数时会根据实参的类型选择正确的派生类函数进行调用,实现了多态的效果。具体来说,实参的类型会被检查,如果是派生类对象,则会将其地址转换为基类的指针或引用,并调用相应的基类函数。这样,即使我们传入不同的派生类对象,也可以实现调用正确的派生类函数,从而达到多态的效果。
调用函数时,用户可以指定实参和形参可以共用一个存贮元吗
一般情况下,实参和形参是不共用一个存储元的,因为它们在内存中是两个独立的变量。但是,有些编程语言和编译器支持将实参和形参指向同一存储元,这被称为“引用传递”或“指针传递”。在这种情况下,用户可以指定实参和形参共用一个存储元,但需要注意的是,这种传递方式需要特殊的语法和使用方法,否则可能会导致不可预期的结果。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)