c++类的友元函数和虚函数
时间: 2024-12-05 15:06:47 浏览: 12
什么是友元?-类继承与虚函数
在C++中,友元函数([^1])允许非成员函数访问类的私有和保护成员,这对于那些与类逻辑紧密相关的但不属于类自身功能的辅助函数非常有用。例如:
```cpp
class C {
public:
// 友元函数声明
void fun(D& d); // 这里仅声明,D还未定义
};
class D {};
// 在D类中声明C类的fun作为友元函数
friend void C::fun(D& d);
```
虚函数则用于实现多态性,使得基类指针可以调用派生类的重写版本的方法。这是通过在其声明时添加`virtual`关键字实现的。注意,如你所说,虚函数只能是类的成员函数,不能是静态成员函数或友元函数:
```cpp
class Base {
public:
virtual void process() { /* 默认行为 */ }
};
class Derived : public Base {
public:
// 虚函数实现
virtual void process() override { /* 派生类的行为 */ }
};
```
当你有一个指向Base类型的指针并指向Derived实例时,调用`process()`会执行Derived的版本。
阅读全文