C++面试题(一)

1.C++的三大特性
答:①继承:一个对象直接使用另一个对象的属性和方法。
优点:•减少重复的代码。
•继承是多态的前提。
•继承增加了类的耦合性。
②多态:子类通过继承父类中的纯虚函数来重载这个函数。
这样通过使用基类的指针或者引用指向子类的对象,就可以实现调用子类对应的函数的功能。
③封装:隐藏对象的属性和实现细节,仅仅对外提供接口和方法。
重载(overload):写一个与已有函数同名但是参数表不同的函数,引用该函数时通过传入的参数不同来实现不同的函数。
覆盖(override):虚函数总是在派生类中被改写。

2.指针和引用的区别
答:① 引用必须被初始化,指针不必。
②引用初始化以后不能被改变,指针可以改变所指的对象。
③不存在指向空值的引用,但是存在指向空值的指针。

3.什么是多态,多态的实现方式
答:多态是在不同继承关系的类对象,去调同一函数,产生了不同的行为。
构成多态的两个条件:
①调用函数的对象必须是指针或引用。
②被调用的函数必须是虚函数,且完成了虚函数的重写。
代码段:

#include 
class Person{
public:
  virtual void BuyTicket(int){
    std::cout << "Adult need Full Fare!" <

你可能感兴趣的:(C++面试题(一))