第一次实习面试

  1. 解释一下C++的多态
  2. 在C++中,多态(Polymorphism)是指一种机制,使得基类的指针或引用可以用来调用派生类的函数,从而实现对不同数据类型的统一操作。多态主要通过以下两种方式实现:

    编译时多态(静态多态)

    1.函数重载(Function Overloading):多个同名函数但参数列表不同。

2.运算符重载(Operator Overloading):重载运算符以适应不同的数据类型。

class Print {
public:
    void display(int i) {
        std::cout << "Integer: " << i << std::endl;
    }
    void display(double d) {
        std::cout << "Double: " << d << std::endl;
    }
};

运行时多态(动态多态)

虚函数(Virtual Functions):通过基类指针或引用调用派生类的函数。实现运行时多态需要使用关键字 virtual

class Base {
public:
    virtual void show() {
        std::cout << "Base class" << std::endl;
    }
};

class Derived : public Base {
public:
    void show() override {
        std::cout << "Derived class" << std::endl;
    }
};

int main() {
    Base* b;
    Derived d;
    b = &d;
    b->show(); // 输出:Derived class
    return 0;
}

在这个例子中,基类 Base 中的函数 show 被声明为虚函数(virtual),这样在调用 b->show() 时,会动态地绑定到派生类 Derivedshow 函数,实现了运行时多态。

2. 解释一下,vector中的in-place和push_back

in-place(原地构造)和push_back(插入新元素),是在容器内直接构造元素,而不是线构建临时对象然后在拷贝或移动到容器中。 这样可以避免不必要的拷贝和移动,提高性能。 使用emplace_back实现。

push_back:会将元素添加到vector的末尾,而insert可以在指定位置插入元素。

insert 函数可以在指定位置上插入元素。

3. 介绍超声设备的原理

超声设备利用超声波(一种频率高于人类听觉范围的声波,通常超过20 kHz)来进行各种应用,如成像、检测、清洗和测距等。

超声波成像(医学超声)

原理:超声波探头发射超声波,波在人体内部传播并遇到不同组织界面时反射回来。探头接收反射波并通过计算机处理生成图像。

超声波测距

原理:超声波传感器发射一束超声波,波遇到物体表面反射回来。通过测量发送和接收超声波的时间差,计算出物体的距离。

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务