复制构造函数的这种实现有一些缺点吗?
Foo::Foo(const Foo& i_foo)
{
*this = i_foo;
}
Run Code Online (Sandbox Code Playgroud)
我记得,在某些书中建议从赋值运算符调用复制构造函数并使用众所周知的交换技巧,但我不记得了,为什么......
我遇到了传递数据对象的人:
宣言:
DataObject * data = 0;
Run Code Online (Sandbox Code Playgroud)
称之为:
SomeMethod( data );
Run Code Online (Sandbox Code Playgroud)
Somethod的定义:
void SomeMethod(SomeObject * & object)
Run Code Online (Sandbox Code Playgroud)
我显而易见的问题是,你何时以及为何要这样做(&*)?是否将指针作为参考传递?
如果我有一个日期值 2010-03-01 17:34:12.018
将此转化为最有效的方法是什么2010-03-01 00:00:00.000?
作为次要问题,模拟Oracle TRUNC功能的最佳方法是什么,这将允许您截断年,季,月,周,日,小时,分钟和第二边界?
我得到"不应该使用keydown事件的'charCode'属性.值是没有意义的"使用jQuery的firefox中的错误.我的代码看起来像这样:
$("div#center-box div#empid-textbox input.id").keydown(function(e){
key = e.which;
if(key===13){
//do something;
};
});
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个错误?
我想在某些方面得到确认.
我的目标是在从链接读取href属性时始终获取相同的字符串(在我的情况下是URI).例:
<a href="test.htm" />with base_url = http://domain.name/
<a href="../test.htm" />with base_url = http://domain.name/domain/
<a href="http://domain.name/test.htm" />with base_url =来自http://domain.name/的任何文件夹
我需要http://domain.name/test.htm从上面的3种情况(或任何其他相同的字符串)中获得.
经过一些测试后,似乎 my_a_dom_node.href总是返回完全限定的URI,包括http://domaine.name,这应该可以满足我的需要.
jQuery具有不同的行为,并$(my_a_dom_node).attr('href')返回HTML中显示的内容(文本).所以我的诀窍是用来$(my_a_dom_node).get(0).href获取完整的URI.
问题是:我能依靠这个吗?
ITool GetTool(Guid tool)
{
if (tool == Hammer.Id)
return new Hammer();
else if (tool == Drill.Id)
return new Drill();
else
throw new ....?
}
Run Code Online (Sandbox Code Playgroud)
扔在这里最合适的异常类型是什么?NotSupportedException是我发现的最接近但我不认为这是正确的.
调用MyPanel.Panel1.Hide(); 或MyPanel.Panel2.Hide(); 只需隐藏面板内的控件......但我想让面板的另一面填满整个空间.
所以,如果我隐藏Panel1,我希望Panel2占用整个空间,我希望分离器消失.那可能吗,如果是的话,怎么样?
我已经开始寻找一些用于动画的外部 GWT库,但对于我想要的东西来说,它们似乎都有点过大了。
我试图模仿GWT 中的JQuery Tools 滚动标签插件来实现滚动导航(想想 iphone)。用户单击一个项目,页面滚动到该项目的子面板,该面板也可能有可以单击的子面板。
我需要做的就是在某个固定的时间内前后滑动一个 div,x 个像素
我发现的关于在 GWT 中编写动画的唯一真正的教程已有 2 年历史,并且似乎有点冗长(管理单个帧等......)
是否没有更简单的解决方案可以轻松地将 div 从一个位置移动到另一个位置而不需要所有额外的麻烦?
请原谅我,但我来自 jQuery 编码,它简单而轻松地内置了此功能。
我有一个GUI架构,其中元素像这样触发事件:
guiManager->fireEvent(BUTTON_CLICKED, this);
Run Code Online (Sandbox Code Playgroud)
每个被触发的事件都将'this'传递给事件的调用者.从未有一个时间,我不希望通过"这个",而且,没有指针,除了为"本"应该永远传递.
这给我带来了一个问题:我如何断言fireEvent永远不会被赋予除'this'以外的指针,我如何简化(和均质化)对fireEvent的调用:
guiManager->fireEvent(BUTTON_CLICKED);
Run Code Online (Sandbox Code Playgroud)
在这一点上,当你写这样的东西时,我想起了一个相当常见的编译器错误:
class A {
public:
void foo() {}
};
class B {
void oops() { const A* a = new A; a->foo(); }
};
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译这将给你
在成员函数'void B :: oops()'中:错误:将'const A'作为'void A :: foo()'的'this'参数传递,丢弃限定符
因为成员函数将'this'作为隐藏参数传递.
"啊哈!" 我说.这(没有双关语)正是我想要的.如果我能以某种方式访问隐藏的'this'指针,它将解决我之前提到的两个问题.问题是,据我所知你不能(可以吗?),如果可以的话,会有一些"但它会破坏封装!" 除了我每次都已经传递'这个',所以它还能破坏它.
那么,有没有办法访问隐藏的'this',如果没有,是否有任何习惯用法或替代方法比每次传递'this'更优雅?
我需要在QTreeWidget中的项目激活时执行一些操作,但是下面的代码不会给我预期的结果:
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("activated(QModelIndex)"), self.editCell)
def editCell(self, index):
print index
Run Code Online (Sandbox Code Playgroud)
要么
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem, int)"),
self.editCell)
def editCell(self, item, column=0):
print item
Run Code Online (Sandbox Code Playgroud)
我做错了什么或如何以正确的方式激活项目激活?
谢谢,塞尔