C++中的继承public, protected和private
C++访问修饰符
继承是 C++ 面向对象编程的关键特性之一。它允许我们从现有类(基类)创建一个新类(派生类)。
派生类继承了基类的特性,并且可以拥有自己的附加特性。例如,
C++ 等面向对象编程语言的主要特性之一是数据隐藏。数据隐藏是指限制对类的数据成员的访问。这是为了防止其他函数和类篡改类数据。但是,让一些成员函数和成员数据可访问也很重要,以便可以间接操作隐藏的数据。C++ 的访问修饰符允许我们确定哪些类成员可以被其他类和函数访问,哪些不能。
public访问修饰符
public 关键字用于创建公共成员(数据和函数)。公共成员可以从程序的任何部分访问。
private访问修饰符
private 关键字用于创建私有成员(数据和函数)。私有成员只能从类内部访问。但是,友元类和友元函数可以访问私有成员。
protected 访问修饰符
protected 关键字用于创建受保护的成员(数据和函数)。可以在类内和派生类中访问受保护的成员。
C++友函数和友类
数据隐藏是面向对象编程的一个基本概念。它限制了来自类外部的私有成员的访问。同样,受保护的成员只能由派生类访问,而不能从外部访问。例如,
然而,C++ 中有一个叫做友元函数的特性,它打破了这个规则,允许我们从类外部访问成员函数。同样,还有一个朋友类。
C++的友函数
友元函数可以访问类的私有和受保护数据。我们在类的主体内使用friend关键字声明了一个friend函数。
类的友元函数在该类的范围之外定义,但它有权访问该类的所有私有成员和受保护成员。即使友元函数的原型出现在类定义中,友元函数也不是成员函数。
友元可以是函数、函数模板、成员函数、类或类模板,在这种情况下,整个类及其所有成员都是友元。
#include <iostream>
using namespace std;
class complex {
public:
complex(float real_v, float imag_v): real(real_v), imag(imag_v){
};
complex operator=(complex a) {
real=a.real; imag=a.imag; return *this;};
// friend function
friend complex operator+(complex a, complex b)