问题列表 - 第10615页

为什么不能将const set <Derived*>作为const set <Base*>传递给函数?

在此之前被标记为重复,我知道这个问题,但在我的情况下,我们讨论的是const容器.

我有2个班:

class Base { };
class Derived : public Base { };
Run Code Online (Sandbox Code Playgroud)

功能:

void register_objects(const std::set<Base*> &objects) {}
Run Code Online (Sandbox Code Playgroud)

我想调用这个函数:

std::set<Derived*> objs;
register_objects(objs);
Run Code Online (Sandbox Code Playgroud)

编译器不接受这个.为什么不?该集合不可修改,因此不存在将非派生对象插入其中的风险.我怎样才能以最好的方式做到这一点?

编辑:
据我所知,现在的编译器的工作方式是set<Base*>set<Derived*>是完全无关的,并为此函数签名是找不到的.我现在的问题是:编译器为什么这样工作?是否有任何反对意见不认为const set<Derived*>是衍生品const set<Base*>

c++ inheritance stl

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

如何在C#中使用许多参数来断开方法定义的行?

在c#中,当我们编写一个获取6个参数的方法时,我们想要打破3行中的参数,我们怎么能打破这些行呢?

c#

3
推荐指数
5
解决办法
3888
查看次数

你能指定日期时间的XmlSerialization格式吗?

我需要将日期时间序列化/反序列化为yyyyMMdd格式的XML文件.我可以使用属性/解决方法吗?

c# xml serialization

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

自定义datacontract/datamember名称

我有以下问题.客户请求以下列格式返回数据的Web服务:

<status>
 <name1>Some name</name1>
 ...
</status>
Run Code Online (Sandbox Code Playgroud)

但是当发生错误时,他们希望得到以下消息:

<status>
 <error>Error description</error>
</status>
Run Code Online (Sandbox Code Playgroud)

我使用WCF创建了一个Web服务,为了满足要求,我定义了以下服务合同:


    [ServiceContract]
    public interface IPatronStatus
    {
        [OperationContract]
        [ServiceKnownType("GetKnownTypes", typeof(KnownTypesProvider))]
        [WebGet(UriTemplate = "/service/status?user={unilogin}")]
        StatusData GetPatronStatus(string unilogin);
    }

并且还定义了以下基类:


    [DataContract(Name="status")]
    public class StatusData
    {

    }

还有两个缺课:


public class PatronStatusData : StatusData
{
        private string _name;
        [DataMember(Name = "name1", Order = 0)]
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        } 
...
}

和:


public class UniLoginNotFoundError : StatusData 
    {
        public UniLoginNotFoundError()
        { }

        private …
Run Code Online (Sandbox Code Playgroud)

wcf datacontract datamember

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

jQuery在按钮点击时使用下拉列表中的值附加UL和LI

我有一个下拉列表:

<select id="ContentList" name="ContentList">
  <option value="">Please Select</option>
  <option value="TEST_TOP">TEST TOP</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有一个可排序的列表:

<ul id="sortable">
  <li class="ui-state-default">First</li>
  <li class="ui-state-default">Second</li>
  <li class="ui-state-default">Third</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我有一个按钮:

<input type="button" value="Add Section" id="btnAdd" class="button"/>
Run Code Online (Sandbox Code Playgroud)

以下脚本:

<script type="text/javascript">
        $(function() {


            $("#sortable").sortable({
                placeholder: 'ui-state-highlight'
            });
            $("#sortable").disableSelection();

            $('#btnAdd').click(function() {

            });

        });

    </script>
Run Code Online (Sandbox Code Playgroud)

当用户在下拉列表中选择某些内容并单击"添加"时,我希望将其作为<li>具有类属性等的可排序列表发送到该可排序列表,现在下拉菜单将显示"请选择"选项.

不确定最好的方法.谢谢

javascript jquery jquery-ui

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

更改保留其ID的实体类型

我使用hibernate作为持久层.有两个实体位于同一个表中,扩展了一个具有单表继承策略的超类.

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class A {
    @Id
    @GeneratedValue
    protected Long id;

    // some common fields for B and C
}


@Entity
public class B extends A {
    // B-specific fields
}

@Entity
public class C extends A {
    // C-specific fields
}
Run Code Online (Sandbox Code Playgroud)

我有一个ID为4的B实例.如何将此实例的类型更改为C保留其ID(4)?

B b = em.find(B.class, 4L);
C c = convertToC(b);
c.setId(b.getId());
em.remove(b);
em.persist(c);
Run Code Online (Sandbox Code Playgroud)

上面的代码失败了

org.hibernate.PersistentObjectException: detached entity passed to persist: C
Run Code Online (Sandbox Code Playgroud)

有可能吗?

java persistence hibernate

9
推荐指数
1
解决办法
2797
查看次数

SQL:从发生次数最少的列中检索值

我有一个有一个字段的表.它有一个像(3,7,9,11,7,11)这样的值现在我想要一个查询,它将选择出现次数最少的值,如果存在最小出现次数,则使用最小的数字

在这种情况下,答案将是3.

sql sql-server

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

为什么我会收到符号查找错误?

我正在编写一个库,它使用dlsym在我的主应用程序中动态加载.我有以下文件:

library.h

#include <ilibrary.h>
#include <igateway.h>

class LibraryImpl;

class Library: public ILibrary {
public:
    static ILibrary* instance();

    IGateway* getGateway() const;

protected:
    Library();
    virtual ~Library();

private:
    static ILibrary* instance_;
    LibraryImpl* library_;
};

extern "C" {
    IMPORT_EXPORT ILibrary* getLibrary();
}
Run Code Online (Sandbox Code Playgroud)

library.cpp

#include "library.h"

#include "business/BCGateway.h"


class LibraryImpl {
public:
    IGateway* getGateway();
};

IGateway* LibraryImpl::getGateway() {
    return BCGateway::instance();
}



ILibrary* Library::instance_ = NULL;
ILibrary* Library::instance() {
    return instance_ ? instance_ : (instance_ = new Library);
}

Library::Library() {
    library_ = new LibraryImpl();
} …
Run Code Online (Sandbox Code Playgroud)

c++

7
推荐指数
1
解决办法
3万
查看次数

重建索引的最佳方法

我正在尝试减少在SQL Server 2005上运行的数据库的所有索引中的碎片.目前我正在尝试将ALTER INDEX与sp_MSforeachtable一起使用,以将其应用于所有表的所有索引:

sp_MSforeachtable "ALTER INDEX ALL ON ? REBUILD;"
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,这似乎并不总是有用吗?如果我尝试单个索引或单个表的所有索引,那么碎片就会被清理掉,这似乎就是当我将它应用到整个数据库时我遇到了问题.

以前我可能使用过DBCC DBREINDEX,但BOL声明它将在下一版本的SQL Server中删除,所以我不想使用它.

任何人都可以就解决清理数据库中所有索引的最佳方法给出任何建议吗?

谢谢

sql database sql-server sql-server-2005

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

将二进制文件转换为Base64字符串

我需要动态地将上传的二进制文件转换为base64字符串格式.我正在使用ASP,Vbscript.使用Midori的组件进行base64转换.对于小尺寸文件(<20K),性能还可以.但当它超过75或100K时,它完全失去了.有没有有效的方法将大二进制文件(2MB)转换为base64字符串格式?

在此先感谢,肯尼

binary base64 file asp-classic

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