我想管理从公共容器中的共享接口类派生的一堆类对象.
为了说明这个问题,我们假设我正在构建一个包含不同演员的游戏.让我们来调用接口IActor,并获得Enemy与Civilian如此.
现在,我的想法是让我的游戏主循环能够做到这一点:
// somewhere during init
std::vector<IActor> ActorList;
Enemy EvilGuy;
Civilian CoolGuy;
ActorList.push_back(EvilGuy);
ActorList.push_back(CoolGuy);
Run Code Online (Sandbox Code Playgroud)
和
// main loop
while(!done) {
BOOST_FOREACH(IActor CurrentActor, ActorList) {
CurrentActor.Update();
CurrentActor.Draw();
}
}
Run Code Online (Sandbox Code Playgroud)
... 或类似的规定.这个例子显然不起作用,但这就是我在这里问的原因.
我想知道:在一个通用的异构容器中管理这些对象的最佳,最安全,最高级的方法是什么?我知道各种方法(Boost :: Any,void*,带有boost :: shared_ptr的处理程序类,Boost.Pointer容器,dynamic_cast)但我无法确定哪种方法可以去这里.
另外我想强调一点,我希望尽可能远离手动内存管理或嵌套指针.
非常感谢:).
我正在使用作为NHibernate 3.x一部分的QueryOver api.我想得到一个行计数,但我正在使用的方法返回所有对象,然后获取集合的计数.有没有办法只返回行数的整数/长值?
我目前正在使用:
_session.QueryOver<MyObject>().Future().Count()
Run Code Online (Sandbox Code Playgroud) 当我使用fputcsv写一行到打开的文件句柄时,PHP会将一个封闭的字符添加到它认为需要的任何列,但是会留下没有这些外壳的其他列.
例如,您最终可能会得到这样的一行
11,"Bob ",Jenkins,"200 main st. USA ",etc
Run Code Online (Sandbox Code Playgroud)
如果没有将虚假空间附加到每个字段的末尾,是否有任何方法可以强制fputcsv始终用外壳包含列(默认为")"字符?
我正在研究一个项目,并将所有测试都传递给主分支.然后我做了一些更改,当一切都开始失败时,我意识到也许我应该在不同的分支上进行这些更改.有没有办法可以将更改提交到新分支而不将它们提交到我的主分支,这样主机仍然可以通过测试?
我在我的应用程序的页面上进行了就地编辑(使用Rails 2.3.5和jQuery).我想知道更新失败时如何在页面上显示错误.
我正在使用ajax(XMLHttpRequest)来保存对Comment对象的更新.控制器有一个这样的更新方法:
def update
@comment = Comment.find(params[:id])
respond_to do |format|
# if @comment.update_attributes!(params[:comment])
if false #deliberately forcing a fail here to see what happens
format.json { render :nothing => true }
else
format.json { render :json => @comment.errors, :status => :unprocessable_entity }
end
end
end
Run Code Online (Sandbox Code Playgroud)
在Firebug中,我可以看到服务器返回"422"(适当的验证错误状态代码).但它是对XMLHttpRequest的响应,因此没有重定向到错误页面.
我想我其实想要这样做:
format.json { render :json => @comment.errors}
Run Code Online (Sandbox Code Playgroud)
或者这个:
format.json {render :json => { :status => :error, :message => "Could not be saved" }.to_json, :status => 400 }
Run Code Online (Sandbox Code Playgroud)
并触发一些迭代(并显示)任何错误的Javascript函数.
我正在使用rails插件REST来实现就地编辑.它似乎没有任何回调函数来处理故障.我有什么选择?我可以编写一些Javascript来响应失败情况而不破解插件吗?我是否必须破解rest_in_place插件来处理故障情况?是否有更好的插件(对于Rails或jQuery)处理就地编辑,包括失败条件?
UPDATE
来自Peter …
我有一个User模特.
>> @u = User.new
=> #<User id: nil, userid: nil, password: nil, created_at: nil, updated_at: nil, user_first_name: nil, user_last_name: nil, user_status: nil, user_type: nil>
Run Code Online (Sandbox Code Playgroud)
我无法Users从控制台向表中添加数据.我正在做以下事情:
>> @u.userid="test1"
=> "test1"
>> @u.password="test2"
=> "test2"
>> @u.user_first_name="test3"
=> "test3"
>> @u.user_last_name="test4"
=> "test4"
>> @u.user_status="test5"
=> "test5"
>> @u.user_type="test6"
=> "test6"
>> @u.save
NoMethodError: undefined method `userid' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我只是想在应用程序中添加一行数据.
我有一个PHP登录,一旦有人登录就会设置2个cookie.问题是,如果您从http://www.example.com登录并转到http://example.com,您将发现自己没有登录.我认为这是因为浏览器只将cookie发送到第一句法.
它只是一个域名,不同之处在于www.域名之前,那么无论是否存在,如何将cookie设置为整个域名www.?
<?php setcookie('username',$username,time()+3600); ?>
Run Code Online (Sandbox Code Playgroud) 几个小时后,我发现了应用程序中的错误原因.我的应用程序的源代码结构如下:
main/
__init__.py
folderA/
__init__.py
fileA.py
fileB.py
Run Code Online (Sandbox Code Playgroud)
真的,还有大约50个文件.但那不是重点.在main/__init__.py,我有这个代码:from folderA.fileA import *
在folderA/__init__.py我有这个代码:
sys.path.append(pathToFolderA)
Run Code Online (Sandbox Code Playgroud)
在folderA/fileB.py我有这个代码:
from fileA import *
Run Code Online (Sandbox Code Playgroud)
问题是fileA被导入两次.但是,我只想导入一次.
解决这个问题(我ATLEAST)最显而易见的方法是改变从某些路径path到folderA.path
但我觉得Python首先应该没有这个错误.还有哪些其他解决方法不需要每个文件知道它的绝对位置?
我在c ++ MFC中编程,
我想得到"C:\ windows""c:\ program files"文件夹路径.
有时用户可能会在其他文件夹中设置窗口,例如c:\ windows0.
是否有任何API来获取Windows和程序文件路径的绝对路径?
非常感谢!
我觉得这有点棘手,至少对我而言.:)
所以我有4个模特Person,Singer,Bassist和Ninja.
歌手,贝斯手和忍者继承自人.
问题是每个Person都可以是它的任何子类.
例如,一个人可以是歌手和忍者.另一个人可以是贝斯手和忍者.另外一个可以全部三个.
我该如何组织我的模特?
非常感谢帮助!
c++ ×2
php ×2
python ×2
ajax ×1
api ×1
branch ×1
commit ×1
containers ×1
cookies ×1
csv ×1
django ×1
django-orm ×1
fputcsv ×1
git ×1
import ×1
import-hooks ×1
inheritance ×1
interface ×1
javascript ×1
jquery ×1
json ×1
mfc ×1
nhibernate ×1
queryover ×1
rowcount ×1
windows ×1