- 什么是C++的多态?
答:多态是面向对象编程的一个重要特性,它允许一个类的引用或指针指向另一个类的对象,从而实现了对不同对象的统一操作。在C++中,多态主要通过虚函数和继承来实现。
- 什么是虚函数?
答:虚函数是C++中的一个特殊成员函数,它用关键字virtual
进行声明。虚函数的主要作用是在基类中定义一个接口,让派生类可以重写这个接口,从而实现多态。当通过基类指针或引用调用虚函数时,会根据指针或引用实际指向的对象类型来调用相应的派生类中的实现。
- 什么是静态成员变量和静态成员函数?
答:静态成员变量和静态成员函数是类中的一种特殊的成员,它们不属于任何一个对象,而是属于整个类。静态成员变量在内存中只分配一次,所有对象共享同一个静态成员变量。静态成员函数可以直接通过类名调用,而不需要创建对象。
- 什么是构造函数和析构函数?
答:构造函数是一种特殊的成员函数,用于初始化类的对象。当创建一个对象时,构造函数会被自动调用。析构函数也是一种特殊的成员函数,用于销毁对象。当一个对象离开其作用域或被显式删除时,析构函数会被自动调用。
- 什么是拷贝构造函数和赋值运算符重载?
答:拷贝构造函数是一个特殊的构造函数,用于创建一个新对象作为现有对象的副本。当通过值传递、返回值或显式拷贝一个对象时,拷贝构造函数会被自动调用。赋值运算符重载是一个特殊的方法,用于重写赋值运算符(=
),使得类的对象可以进行赋值操作。
- 什么是智能指针?
答:智能指针是一种C++中的数据结构,它可以像指针一样使用,但具有自动管理内存的功能。智能指针会在不再需要时自动释放所指向的内存,从而避免了内存泄漏的问题。C++11引入了两种智能指针:std::shared_ptr
和std::unique_ptr
。
- 什么是RAII(Resource Acquisition Is Initialization)?
答:RAII是一种编程技术,用于管理资源的生命周期。它将资源的获取与对象的创建绑定在一起,确保在对象的生命周期结束时,资源会被正确地释放。RAII的主要优点是可以避免内存泄漏和其他资源管理问题,提高代码的健壮性和可维护性。