小编aaa*_*aaa的帖子

派生对象上的C++虚函数调用是否通过vtable?

在下面的代码中,它通过指向派生对象的指针调用虚函数foo.这个电话会通过vtable还是B::foo直接打电话?

如果它是通过vtable进行的,那么B::foo直接调用它的C++惯用方法是什么?我知道在这种情况下我总是指着一个B.

Class A
{
    public:
        virtual void foo() {}
};

class B : public A
{
    public:
        virtual void foo() {}
};


int main()
{
    B* b = new B();
    b->foo();
}
Run Code Online (Sandbox Code Playgroud)

c++ virtual

7
推荐指数
3
解决办法
2402
查看次数

外部链接C库中的异常传播

我正在编写一个使用外部第三方C库的C++库.因此,我的图书馆将调用此第三方库中的函数,第三方库将回调到我的库的不同部分.

我想知道在这种情况下异常会发生什么?假设MyLib :: foo()调用外部C库函数,最终调用MyLib :: bar(),并且bar抛出异常,会发生什么?将异常正确传播到foo()中的处理程序吗?

谢谢!

c c++ exception external libraries

4
推荐指数
1
解决办法
459
查看次数

标签 统计

c++ ×2

c ×1

exception ×1

external ×1

libraries ×1

virtual ×1