第一次实习面试
- 解释一下C++的多态
在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() 时,会动态地绑定到派生类 Derived 的 show 函数,实现了运行时多态。
2. 解释一下,vector中的in-place和push_back
in-place(原地构造)和push_back(插入新元素),是在容器内直接构造元素,而不是线构建临时对象然后在拷贝或移动到容器中。 这样可以避免不必要的拷贝和移动,提高性能。 使用emplace_back实现。
push_back:会将元素添加到vector的末尾,而insert可以在指定位置插入元素。
insert 函数可以在指定位置上插入元素。
3. 介绍超声设备的原理
超声设备利用超声波(一种频率高于人类听觉范围的声波,通常超过20 kHz)来进行各种应用,如成像、检测、清洗和测距等。
超声波成像(医学超声)
原理:超声波探头发射超声波,波在人体内部传播并遇到不同组织界面时反射回来。探头接收反射波并通过计算机处理生成图像。
超声波测距:
原理:超声波传感器发射一束超声波,波遇到物体表面反射回来。通过测量发送和接收超声波的时间差,计算出物体的距离。
