问题标签 [static-polymorphism]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - “Qt 信号/槽的静态多态性:怎么了?”
我正在尝试使用带有 Qt 信号/插槽机制的静态多态性而不是动态多态性。但我得到编译错误。我的代码有什么问题?什么是解决方法?
设备.h
主文件
编译输出
Qt5.12.2/5.12.2/gcc_64/include/QtCore/qobjectdefs_impl.h:414:94:错误:从类型“QObject*”到类型“QtPrivate::FunctionPointer::*)()>::Object* 的无效静态转换' {aka 'BaseDevice*'} FuncType::template call(static_cast(this_)->function, static_cast(r), a);
c++ - CRTP - 我可以创建一个私有方法吗?
我正在实现一个静态多态性:
此代码是动态多态类的静态实现,其中 void impl() 是虚拟的和私有的。
我已经实现了多态性(静态)。但是我必须将方法 void impl() 公开,以便允许从基类访问它。我希望方法 void impl() 再次成为私有的。可以做到吗?
更新:我不想写
在 Derived 类中,因为它允许 Base 访问 Derived 的所有成员。
c++ - CRTP - 是否可以创建抽象基类?
我正在实现一个静态多态性:
void impl()
此代码是纯虚拟的动态多态类的静态实现。所以基类是抽象的。
现在这些类实现了静态多态,因此没有纯虚函数。
是否可以将 Base 类抽象化,从而无法创建此类的对象?
c++ - 具有依赖于实现类型的成员函数的多个静态接口
我有两个接口要与 CRTP 一起用于静态多态性。其中一个包含一个函数,其签名中的类型取决于实现。
这个问题看起来像这里没有解决方案的问题。我想出的解决方案包括定义类型的附加模板结构。然后,此模板专门用于避免“不完整类型的无效使用”错误的实现。
这是我的代码
我在这段代码中不喜欢的是 Interface2 和 typeHelp 依赖于模板参数 impl1。这适用于我的特殊情况,其中 Implementation2 是相对于 impl1 进行模板化的,但如果 Implementation2 不是,则不会。我想知道这个问题是否有更通用和更优雅的解决方案。
java - 静态/编译时多态性
为什么方法重载称为静态或编译时 多态性
Java 中的示例。
所以我的问题是。
为什么我们说方法重载(在这种情况下polymorphicMethod
是方法)是静态多态性,而另一种方法(nonPolymorphicMethod(int a)
nonPolymorphicMethod1(int a)
)不是多态性。
从技术上讲,我看不出具有相同名称和不同参数的方法与具有不同的方法之间的不同,此处的所有答案和谷歌中的主题不适用于我的问题。
java - Is it true to say that every run time binding was a static binding during compilation?
I'm pretty confused about the topic binding. As we know in static binding, the type of reference is checked to determine the binding, not the object it is referencing, and in dynamic binding, the type of object the reference is pointing is taken into consideration.
In the above example, we can see during compile time, both Line1 and line2 will be treated by static binding and they will link to the A-class method show( since the type of reference is A). But during runtime, the call is resolved and line1 links to the A-class method show() and line2 links to the B-class method i.e, type of object or we can say dynamic binding.
So my main intention is to know the following.
Is dynamic binding always results after static binding? or I'm understanding something wrong?
If it's true then is it true to say every method is dynamically linked during the run time?
Can we generalise it?
c++ - 静态多态和模板容器
我正在尝试使用静态多态性和模板来创建一个可以容纳更多一种类型的容器,根据我对模板的了解,它无法完成,但我希望我错了,并且有一个方法。我有以下课程:
我不会创建一个可以容纳它们的容器,我尝试了这段代码 -
但它不起作用我试图这样做:
我收到了这个错误:
错误:没有匹配函数调用 'std::vector, std::allocator > >::push_back(base*&)' y.m_vec.push_back(b);
templates - 将成员函数 ptr 插入地图
编辑从代码本身中删除格式(粗体)。
编辑 2在答案末尾添加了修复
我有以下代码,我试图在其中创建静态多态性和模板类,我试图在只有一个派生类型成员函数 ptr中插入映射。地图的定义是这样的:
插入命令是这样的:
这是整个代码:
但是当调用插入函数(粗体部分)时,我遇到了分段错误,这就像我运行调试器时 m_func 不存在并且我不会打印我得到的 m_func :
这里没有名为 m_func 的成员或方法
为什么会发生这种情况以及如何解决它
修复
代替
c++ - 如何使用静态多态性在 int 和指针类型之间进行转换?
我有这段代码:
该程序在第一次调用 Find() 时崩溃,但我不知道为什么。我正在使用 GCC 6.2.0,它仅符合 C++14,否则我会使用 constexpr。我究竟做错了什么?