问题列表 - 第6033页

将智能指针作为参数传递给类:scoped_ptr或shared_ptr?

我有一个类在一个公共方法中创建一个对象.该对象是私有的,对于该类的用户不可见.然后,此方法调用同一个类中的其他私有方法,并将创建的对象作为参数传递:

class Foo {
   ...
};

class A {
   private:
      typedef scoped_ptr<Foo> FooPtr;

      void privateMethod1(FooPtr fooObj);

   public:
      void showSomethingOnTheScreen() {
          FooPtr fooObj(new Foo);
          privateMethod1(fooObj);
      };
};
Run Code Online (Sandbox Code Playgroud)

我相信在这种情况下正确的智能指针将是一个scoped_ptr,但是,我不能这样做因为scoped_ptr使该类不可复制,如果以这种方式使用,所以我应该这样做的方法:

void privateMethod1(FooPtr& fooObj);
Run Code Online (Sandbox Code Playgroud)

privateMethod1不存储对象,也不保留对它的引用.只需从类Foo中检索数据.

正确的方法可能是根本不使用智能指针并在堆栈中分配对象,但这是不可能的,因为它使用的库不允许堆栈上的对象,它们必须位于堆上.

毕竟,我仍然对scoped_ptr的实际用法感到困惑.

c++ boost class smart-pointers

5
推荐指数
1
解决办法
4055
查看次数

如何判断一个类是否可以序列化?

我循环遍历Session键并将条目及其值添加到Hashtable,然后我将其序列化.我遇到的问题是Session上有一个不可序列化的对象,它不应该被序列化.我环顾四周,很多内置类型都没有实现ISerializable属性,所以测试它不起作用:

if (val is ISerializable)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

那么,我该如何测试呢?这有意义吗?

c# serialization

2
推荐指数
1
解决办法
436
查看次数

使用Fluent NHibernate进行继承映射

鉴于以下场景,我希望使用Fluent NHibernate将类型层次结构映射到数据库模式.

我正在使用NHibernate 2.0


键入层次结构

public abstract class Item
{
    public virtual int ItemId { get; set; }
    public virtual string ItemType { get; set; }
    public virtual string FieldA { get; set; }
}

public abstract class SubItem : Item
{
    public virtual string FieldB { get; set; } 
}

public class ConcreteItemX : SubItem
{
    public virtual string FieldC { get; set; } 
}

public class ConcreteItemY : Item
{
    public virtual string FieldD { get; set; } …
Run Code Online (Sandbox Code Playgroud)

mapping nhibernate polymorphism types fluent

26
推荐指数
2
解决办法
2万
查看次数

Ada有没有好的单元测试框架?

我来自C++背景,但我目前在Ada工作.在C++世界中,我在编写每个类时对其进行单元测试......这似乎不是我们的代码库在工作中的时尚.

我想开始为我创建的Ada软件包实现单元测试,是否有任何好的框架可以做到这一点?

unit-testing ada

12
推荐指数
2
解决办法
3302
查看次数

NHibernate fetch ="join"映射属性似乎不起作用

用NH映射字典.声明如下:

<hibernate-mapping ...
    <map 
        name="CostsByRole" 
        table="JobAccountingSnapshotCosts"
        lazy="false" 
        fetch="join" 
        access="nosetter.camelcase-underscore">
            <key column="SnapshotId" />
            <index column="RoleCode" type="String" />
            <element column="Amount" type="Decimal" />
    </map>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

我期待生成一个SQL查询,但我得到两个:选择实际对象,然后选择字典的内容.

有任何想法吗?

nhibernate nhibernate-mapping

4
推荐指数
1
解决办法
3667
查看次数

如何配置IPython在Windows上使用gvim?

这真的看起来像我应该能在谷歌上找到的东西,但出于某种原因我无法做出正面或反面.有EDITOR环境变量,ipy_user_conf.py文件,ipythonrc文件,关于在服务器模式下运行gvim的一些奇怪的事情以及一些我无法解决的其他东西(可能是因为睡眠不足).

我可以遵循哪个指南,或者有人可以概述我需要采取的步骤?

python windows vim ipython

7
推荐指数
2
解决办法
3652
查看次数

是反向更好还是更糟?

处理double数据类型时,乘以更好还是更差?

哪种方式更快?哪种方式使用更少的内存?哪种方式更受欢迎?

MSIL如何处理这个?

SquareInches = MMSquared / 645.16 
SquareInches = MMSquared * 0.0015500031000062000124000248000496
Run Code Online (Sandbox Code Playgroud)

注意: 10K用户会注意到这个问题的副本已被删除,因为原问题提问者决定在问题的"评论"部分指责每个人.

这个问题被重新发布,因为这是一个"好"的问题.

请"取消选中"社区Wiki以获取您的答案,因为我只是将其作为CW发布,因此它不被视为"声誉"抓取.

相关问题:

我应该使用乘法还是除法?

.net algorithm math optimization

11
推荐指数
4
解决办法
1571
查看次数

将用户从旧网站重定向到新网站时,检测是否向其显示自定义欢迎消息的最佳方法是什么?

假设您在旧代码库上运行的旧网站提供某些功能.后继网站已启动并运行,提供所有旧功能和更多功能.有一段时间,旧网站上有一个指向新网站的HTML链接,供那些关心点击的用户使用.

现在,旧网站已达到使用寿命,您希望自动将用户重定向到新网站,例如通过301或302重定向.但是,当用户遇到此重定向时,您还希望在新站点上显示友好消息,欢迎他们并解释他们为什么没有看到旧版本.

当用户单击HTML链接时,将填充HTTP_REFERER标头,并且可以通过该值触发欢迎消息.但是,使用3XX重定向代码时似乎不是这样.

针对此问题的Google热门话题有:"HTTP 1.1规范明确说明:如果给出了3XX代码,则不会传递任何Referer值.(最终,指向3XX站点的URL)." (http://www.usenet-forums.com/apache-web-server/37811-how-set-referer-redirect.html#post145986)

但是我在快速阅读规范(http://tools.ietf.org/html/rfc2616)中找不到这个陈述.

任何人都可以建议实现此功能的正确方法吗?

注意:这并不是一个包罗万象的解决方案.我们知道有些客户端甚至不会出于隐私原因发送HTTP_REFERER标头,但为了争论,让我们忽略该用例.

html apache http http-headers

0
推荐指数
1
解决办法
214
查看次数

MSIL调试器 - Mdbg,Dbgclr,Cordbg

我一直在做一些MSIL工作,并且遇到了对这三个调试器的引用.

  • 他们之间有什么区别?

  • 其中一个比其他人更好.功能?

  • 还有其他我错过了吗?

debugging cil

5
推荐指数
1
解决办法
3422
查看次数

比较GWT和Django?

两者似乎都很酷,在什么情况下使用?

django comparison gwt

10
推荐指数
3
解决办法
4234
查看次数