Bootstrap

实习冲刺练习 第十三天

每日一题

二分查找. - 力扣(LeetCode)

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int l = 0,r = nums.size()-1;//左右边界
        while(l <= r){
            int mid = (r - l) / 2 + l;//中间的值
            int ans = nums[mid];
            if(ans == target) return mid;//如果相等返回mid
            else if(ans < target) l = mid + 1;//小于目标值在右边部分,更新左边界
            else r = mid - 1;//反之更新右边界
        }
        return -1;
    }
};

八股

C++ 中类的三大特性是什么?请简要解释

类的三大特性是封装、继承和多态。

  1. 封装(Encapsulation):封装是将数据和操作这些数据的方法组合在一起,形成一个类。通过封装,类可以隐藏其内部实现细节,只暴露必要的接口给外部使用。这有助于提高代码的安全性和可维护性。

  2. 继承(Inheritance):继承是指一个类可以从另一个类派生,获取其属性和方法。这样可以实现代码的重用,并允许创建层次结构,例如基类和派生类之间的关系。派生类可以扩展或重写基类的功能。

  3. 多态(Polymorphism):多态允许不同类的对象以相同的方式被处理。通过虚函数,基类可以定义一个接口,而派生类可以实现这个接口的具体行为。这样,程序在运行时可以根据对象的实际类型来调用相应的方法,实现动态绑定。

什么是构造函数和析构函数?它们的作用是什么?

构造函数

  • 定义:构造函数是类的一个特殊成员函数,用于初始化类的对象。当一个对象被创建时,构造函数会被自动调用。
  • 作用:构造函数的主要作用是为对象的成员变量分配初始值,设置对象的初始状态。它可以接受参数,以便在创建对象时传入不同的值。
  • 特性:构造函数没有返回值,名称与类名相同,可以重载以支持多种初始化方式。

析构函数

  • 定义:析构函数是类的另一个特殊成员函数,用于在对象生命周期结束时自动调用,通常是在对象超出作用域或被删除时。
  • 作用:析构函数的主要作用是清理对象所占用的资源,比如释放动态分配的内存、关闭文件句柄、断开网络连接等。这样可以防止内存泄漏和资源泄漏。
  • 特性:析构函数没有返回值,名称与类名相同,但前面加上波浪号(~),不能重载,也不能带参数。

ps:仅个人观点,后续可能会进行更改

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;