📅  最后修改于: 2023-12-03 15:29:54.641000             🧑  作者: Mango
C++是一种常见的面向对象编程语言,其中两个重要但有些容易混淆的概念是继承和友谊。这篇文章将向你介绍C++中的继承和友谊,帮助你更好地了解这两个概念。
继承是一种对象间的关系,其中一个派生类继承了一个基类的特性。基类可以定义所有派生类共享的属性和方法,而派生类可以添加或修改这些属性和方法。
在C++中,继承通过派生类声明中使用关键字 public
,protected
或 private
来指定继承类型。示例代码如下所示:
class BaseClass {
public:
void baseMethod() {
std::cout << "This is a base class method." << std::endl;
}
protected:
int baseInt;
};
class DerivedClass : public BaseClass {
public:
void derivedMethod() {
std::cout << "This is a derived class method." << std::endl;
}
};
在这个例子中,class DerivedClass
公开继承了 class BaseClass
。class DerivedClass
可以使用 baseMethod()
,因为它被定义为公共方法。此外,class DerivedClass
可以访问 int baseInt
,因为它被定义为受保护的成员。
派生类还可以重写或覆盖基类的方法。示例代码如下所示:
class BaseClass {
public:
void baseMethod() {
std::cout << "This is a base class method." << std::endl;
}
};
class DerivedClass : public BaseClass {
public:
void baseMethod() {
std::cout << "This is an overridden derived class method." << std::endl;
}
};
在这个例子中,class DerivedClass
重写了 baseMethod()
。当调用 baseMethod()
时,将使用派生类中的实现。
友谊是一种允许类中的其他类或函数访问其私有成员的机制。在C++中,可以使用 friend
关键字将类或函数声明为友元。
示例代码如下所示:
class MyClass {
private:
int privateInt;
public:
friend void friendFunction(MyClass &myClass);
};
void friendFunction(MyClass &myClass) {
myClass.privateInt = 42;
}
在这个例子中,friendFunction()
被声明为 class MyClass
的友元。因此,在 friendFunction()
中可以访问 MyClass
的私有成员变量。
继承和友谊是在C++中用于建立对象关系的两个重要概念。继承可以通过派生类继承所有基类共享的属性和方法,而友谊则允许类中的其他类或函数访问其私有成员。通过正确使用这两个概念,你可以更好地设计你的C++程序。