可能重复:
C++等效于instanceof
我想知道dynamic_cast和typeid之间的区别仅在于类比较(除了允许访问子类的方法的dynamic_cast和仅用于类比较的typeid).我发现一个两年前的StackOverflow问同样的问题: C++相当于instanceof.然而,它已经两岁了,我不想去找一个旧帖子(而且我不确定什么时候出现了typeid),所以我想重新问同一个问题,但有点不同.
基本上,我有A类和B类,其是正在采取在抽象类C. C类的子类都作为参数的方法和我想,以确定是否类C是真的A类或B类两者typeid的和dynamic_cast正常工作,所以这更多的是最佳实践/表现的问题.我在猜测:
A* test = dynamic_cast<A*> someClassCVar
if (test != 0) { //it is of class A }
Run Code Online (Sandbox Code Playgroud)
要么
if (typeid(someClassCVar) == typeid(A)) {
//it is of class A
}
Run Code Online (Sandbox Code Playgroud)
编辑:对不起,我忘了包含这些信息.ActiveMQ CMS文档声明使用dynamic_cast,但我认为这仅仅是因为它假定用户希望访问特定于子类的方法.对我来说,如果只需要进行类比较,似乎typeid会有更好的性能:http: //activemq.apache.org/cms/cms-api-overview.html
无法找到一种方法来为我的旧问题提供赏金,所以我重新发布它,因为它可能是一个错误.
简短版本:我希望PhoneGap + JQM应用程序中的持久标头在页面转换之间保持原位(从不移动),就像页脚可以设计的那样.
长版:首先,我是jQuery和JQM的新手,所以请指出我所犯的任何新错误.
我正在尝试在应用程序中的不同页面之间保留一个标题.当用户在页面之间转换时,它必须像持久的页脚一样保持在原位.使用data-role ="footer"data-id ="(某些一致的id)"data-position ="fixed"来实现持久页脚.它运作得相当好(随机故障,因为它错位,然后在几秒后自动修复).有关我正在寻找的内容的更多信息,请参阅此处的"持久页脚":http: //jquerymobile.com/test/docs/#/test/docs/toolbars/docs-footers.html
并在下面的链接中查看持久页脚的示例.了解如何选择页脚中的项目转换为全新页面,但页脚不会移动:http: //jquerymobile.com/test/docs/#/test/docs/toolbars/footer-persist-a.html
现在我正在尝试做同样的事情,但我希望它在应用程序的顶部而不是底部.我尝试过以下的事情:
每页上的HTML:
<div data-role="footer" data-position="fixed" data-id="header">
<img src="images/bgheader.png" />
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$('div.ui-footer').css('top', '0px');
$('div.ui-footer-fixed').css('top', '0px');
$('div.fade').css('top', '0px');
$('div.ui-fixed-overlay').css('top', '0px');
$('div.ui-bar-a').css('top', '0px');
Run Code Online (Sandbox Code Playgroud)
每页上的HTML:
<div data-role="header" data-position="fixed" data-id="header" id="header" data-backbtn="false">
<img src="images/bgheader.png" />
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个问题已被查看,但没有答案或评论,所以我想我会尝试简化我的问题.对于那些对我的整体问题感到好奇的人,请参阅jQuery Mobile中的链接:持久标题
无论如何,我的问题是如何强制JQM页脚位于顶部而不是底部?这是JQM页脚的代码.它在页面转换过程中保持良好状态,但它位于页面底部,我需要它在头部:
<div data-role="footer" data-position="fixed" data-id="navBar" id="navigationBar">
<img src="images/bgheader.png" />
</div>
Run Code Online (Sandbox Code Playgroud)
我已经开始考虑用Sencha重建它,但由于我有明天的截止日期,我认为这不可行.此持久性标头是目前唯一缺少的(当页面由于某种原因转换时,JQM标头不会停留).