函数重载时,传递引用或指针,所有函数必须使用相同类型的数据。函数重写时,对于引用成员函数,子类函数必须引用同一类型变量;对于指向成员函数,子类函数必须指向同一类型变量。
函数重载允许在同一作用域内创建具有相同名称但参数列表不同的多个函数。对于引用和指针,我们需要注意以下几点:
传递引用时,所有函数必须引用相同类型的数据:
void print(const int& num); void print(const double& d);
传递指针时,所有函数必须指向相同类型的数据:
立即学习“C++免费学习笔记(深入)”;
void print(int* num); void print(double* d);
函数重写是在子类中实现父类中具有相同名称和参数列表的函数。对于引用和指针,我们需要注意:
对于引用成员函数,子类函数必须引用相同类型的变量:
class Parent { public: void setAge(const int& age); }; class Child : public Parent { public: void setAge(const int& age) override; // 同一类型引用 };
对于指向成员函数,子类函数必须指向相同类型的变量:
class Parent { public: int* getPtr(); }; class Child : public Parent { public: int* getPtr() override; // 同一类型指针 };
假设我们有一个 Person 类,它表示一个人的年龄和名字。该类中有两个成员函数:setAge(const int& age) 和 setName(const string& name)。
我们创建一个子类 Employee,继承自 Person 类,并重写 setAge 函数,在将年龄设置为 age 之前将其加 5。
class Person { public: void setAge(const int& age); void setName(const string& name); }; class Employee : public Person { public: void setAge(const int& age) override; // 重写setAge函数 }; // Employee 类中的 setAge 函数 void Employee::setAge(const int& age) { Person::setAge(age + 5); // 调用父类setAge函数 }
现在,我们可以创建一个 Employee 对象并使用重写的 setAge 函数:
Employee emp; emp.setAge(20); // 实际设置为 25
以上就是C++ 函数重载和重写中引用和指针的处理的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号