类层次结构的一个常见错误是将基类中的方法指定为虚拟,以便继承链中的所有重写都能完成某些工作,并且忘记将调用传播到基本实现.
class Container
{
public:
virtual void PrepareForInsertion(ObjectToInsert* pObject)
{
// Nothing to do here
}
};
class SpecializedContainer : public Container
{
protected:
virtual void PrepareForInsertion(ObjectToInsert* pObject)
{
// Set some property of pObject and pass on.
Container::PrepareForInsertion(pObject);
}
};
class MoreSpecializedContainer : public SpecializedContainer
{
protected:
virtual void PrepareForInsertion(ObjectToInsert* pObject)
{
// Oops, forgot to propagate!
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否有一种好的方法/模式来确保在调用链的末尾始终调用基本实现?
我知道有两种方法可以做到这一点.
您可以使用成员变量作为标志,将其设置为虚方法的基本实现中的正确值,并在调用后检查其值.这需要使用公共非虚方法作为客户端的接口,并使虚方法受到保护(这实际上是一件好事),但它需要专门为此目的使用成员变量(需要如果虚方法必须是const,则是可变的.
class Container
{
public:
void PrepareForInsertion(ObjectToInsert* pObject)
{
m_callChainCorrect = false;
PrepareForInsertionImpl(pObject); …Run Code Online (Sandbox Code Playgroud) 我的表单上有一个看起来像这样的元素:
<div style="overflow-y:auto;overflow-x:hidden;height:100%;width:100%">
Run Code Online (Sandbox Code Playgroud)
在IE7中,当页面首次呈现时,没有滚动条.但是,如果我调整页面大小(即使只有1个像素),滚动条也会正确显示.
有什么我可以这样做,以便滚动条在页面首次显示时正确显示?
我有一个现有的java webapp,它使用Hibernate来实现它的持久性.我被告知我必须加密与数据库加密 - 所以我的第一个想法是设置它来通过SSL进行通信 - 并通过想出如何设置Oracle来通过SSL监听JDBC -
http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/wp-oracle-jdbc_thin_ssl_2007.pdf
并编写了一个快速测试类来验证它是否已设置并正常工作(通过标准JDBC连接).这让我遇到了配置Hibernate的问题 - 遗憾的是我没看到hibernate如何支持它?
我正在寻找一个处理.dbo前缀的高性能默认策略.
我意识到dbo.前缀不仅仅是语法噪音,但是我通过过去8年的基于MS的开发跳过键入dbo.前缀并忽略其功能.
除了存储过程编译锁的性能问题,在SQLqueries和存储过程中跳过键入".dbo"还有一个缺点吗?
进一步背景:我的所有开发都是基于中间层服务帐户的集成安全性的Web中间层.
我正在寻找可以按国家划分的大型世界地图.Google Charts有一个API,但它只允许您生成一个小地图(440x220像素).有谁知道用开源库生成这样的地图的方法?
我使用jquery-ui滑块作为侧面滚动条,并且手柄滑到末端排水沟之外的问题(如果你将滑块向右滑动,可以看到这里).我已经尝试了所有我能用CSS思考的东西,试图让手柄没有比排水沟更进一步,但无济于事.任何建议将不胜感激.
为了澄清我正在添加以下图表来显示问题(由于句柄很小,它非常微妙,但是如果你在CSS中创建一个大句柄,那么句柄 的宽度恰好超过了排水沟的一半).
这是问题的一个问题.基本上我希望手柄留在排水沟内.
alt text http://img268.imageshack.us/img268/124/examplex.png
在UITextView中,当我们点击它时,
出现键盘,
但是当用户按下返回键时,(通常在textView中创建一个新行)
键盘应该下降.
怎么样?
多年来我一直在寻找解决方案,但没有最终确凿记录.那里有许多Shoutcast Flash播放器(例如radio.de)所以我知道它是可能的.但是,我的大部分研究都是这样的:
s = new Sound();
s.loadSound ("url.of.shoutcaststream:8003",true);
Run Code Online (Sandbox Code Playgroud)
哪个适用于我在FireFox中,但不适用于IE.我不想购买组件,我想知道这些组件是如何做到的,以便我可以构建自己的自定义播放器.
ax.plot_date((dates, dates), (highs, lows), '-')
Run Code Online (Sandbox Code Playgroud)
我目前正在使用此命令使用Matplotlib绘制金融高点和低点.它工作得很好,但是如何在没有市场数据的情况下删除x轴上的空白区域,例如周末和假日?
我有日期,高点,低点,关闭和打开的列表.我找不到任何创建带有x轴的图表的示例,该图表显示日期但不强制执行常量比例.
我正在使用sphinx搜索引擎和思考sphinx插件的rails.
我有一个工作模型,其标题属性由sphinx索引.我想搜索多个作业并捕获任何匹配1个或更多关键字的作业.
例如...
Job.search("rails,django,symfony")
...并获得一系列具有以下标题的作业对象"rails developer for hire","寻找django向导","任何人都知道symfony?"
我将这三个单独的作业存储在我的数据库中并编入索引.当我运行上面的搜索时,我得到一个空数组.当单个查询术语自行提供时,就会找到每个作业.
我宁愿不做这个Job.search"rails"Job.search"django"Job.search"symfony"
有谁知道如何将多个关键字传递给sphinx搜索引擎?
c++ ×1
financial ×1
flash ×1
google-maps ×1
graph ×1
hibernate ×1
html ×1
inheritance ×1
iphone ×1
java ×1
javascript ×1
jquery ×1
jquery-ui ×1
maps ×1
matplotlib ×1
overflow ×1
python ×1
search ×1
shoutcast ×1
slider ×1
sphinx ×1
sql ×1
sql-server ×1
streaming ×1
svg ×1
uitextview ×1
virtual ×1