面试题答案
一键面试1. 通过继承实现代码复用的基本原理
在C++中,继承允许一个类(派生类)获取另一个类(基类)的属性和行为,从而实现代码复用。派生类可以复用基类已有的成员变量和成员函数,无需重新编写相同的代码,同时还能添加新的成员或重写基类的成员以满足特定需求。
2. 定义基类和派生类,以及派生类复用基类成员的示例
// 定义基类
class Animal {
public:
// 基类的成员变量
std::string name;
// 基类的成员函数
void speak() {
std::cout << name << " makes a sound." << std::endl;
}
};
// 定义派生类,继承自Animal
class Dog : public Animal {
public:
void bark() {
std::cout << name << " barks." << std::endl;
}
};
在上述代码中,Animal
是基类,Dog
是派生类。Dog
类通过public
继承自Animal
类,因此Dog
类可以复用Animal
类的name
成员变量和speak
成员函数。Dog
类还可以定义自己特有的成员函数bark
。
3. public、protected、private继承方式对代码复用和访问权限的影响
- public继承:
- 代码复用:派生类可以复用基类的所有非
private
成员。 - 访问权限:基类的
public
成员在派生类中仍然是public
的,基类的protected
成员在派生类中仍然是protected
的。这意味着派生类对象可以访问基类的public
成员,派生类的成员函数可以访问基类的public
和protected
成员。
- 代码复用:派生类可以复用基类的所有非
- protected继承:
- 代码复用:派生类可以复用基类的所有非
private
成员。 - 访问权限:基类的
public
和protected
成员在派生类中都变为protected
的。这意味着派生类对象不能直接访问基类的任何成员,只有派生类的成员函数可以访问基类的public
和protected
成员。
- 代码复用:派生类可以复用基类的所有非
- private继承:
- 代码复用:派生类可以复用基类的所有非
private
成员。 - 访问权限:基类的
public
和protected
成员在派生类中都变为private
的。这意味着派生类对象不能直接访问基类的任何成员,而且派生类的成员函数也只能在派生类内部访问基类的public
和protected
成员,无法在派生类的子类中访问这些成员。
- 代码复用:派生类可以复用基类的所有非