gpt4 book ai didi

c++ - C++中的非虚拟指针?

转载 作者:行者123 更新时间:2023-12-03 22:59:46 25 4
gpt4 key购买 nike

在 C++ 中是否有可能有一个“非虚拟指针”(即直接调用方法而无需动态调度的指针)。这是因为我正在尝试做这样的事情:

template <typename T>
class Ref {
T* value; // I am 100% sure that value points to an actual T object.
/* constructors and stuff */
auto operator -> () {
return value;
}
};
但是,当我知道值的动态类型为 T 时,这将不必要地调用虚函数...
我知道用户可以强制使用非虚拟函数,如下所示:
X->Base::foo();
但这对用户来说似乎是另一个负担。这如何自动完成?

最佳答案

when I know the dynamic type of value to be T


您可能知道/假设这一点,但目前,C++ 中没有任何机制可以让语言知道/假设任何给定的对象指针/引用。如果是多态类型,则调用任意 virtual函数(除非调用者明确指定)将使用动态调度。

关于c++ - C++中的非虚拟指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66808529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com