小编Grz*_*nio的帖子

在C++中实现工厂方法的首选方法是什么?

一个新手问题:我有一个带有一些虚函数的类的层次结构,我正在尝试实现一个工厂方法,但我不确定什么是最好的方法:

  1. 从工厂方法返回一个原始指针,并将其包装到调用方法中的智能指针中
  2. 从工厂返回一个智能指针
  3. 从工厂返回一个正确的对象(但它是否正确复制派生类?)并将其分配给调用方法中的本地对象
  4. 从工厂返回一个引用(但是如何在没有内存泄漏的情况下在工厂方法中创建对象?)

我将非常感谢工厂方法和最小客户端的示例,它有效并且不会泄漏内存.

我的背景是C#和Java,所以我在C++ atm中的内存管理方面有点迷失.

c++ memory-management factory

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

无法使用Json.NET对具有多个构造函数的类进行反序列化

我有一个我不用多个构造函数控制的类型,相当于这个:

    public class MyClass
    {
        private readonly string _property;

        private MyClass()
        {
            Console.WriteLine("We don't want this one to be called.");
        }

        public MyClass(string property)
        {
            _property = property;
        }

        public MyClass(object obj) : this(obj.ToString()) {}

        public string Property
        {
            get { return _property; }
        }

    }
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试反序列化它时,将调用私有无参数构造函数,并且永远不会设置该属性.考试:

    [Test]
    public void MyClassSerializes()
    {
        MyClass expected = new MyClass("test");
        string output = JsonConvert.SerializeObject(expected);
        MyClass actual = JsonConvert.DeserializeObject<MyClass>(output);
        Assert.AreEqual(expected.Property, actual.Property);
    }
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

We don't want this one to be called.

  Expected: "test"
  But …
Run Code Online (Sandbox Code Playgroud)

.net c# json json.net

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

使用WCF JSON Web服务的客户端配置

我已经将Web服务配置为使用Json,如本博客中所述:http://www.west-wind.com/weblog/posts/164419.aspx和其他各种博客,但我无法创建客户端来使用此服务服务.我尝试了各种各样的东西,但总是有无意义的例外.实现(我应该添加的WCF)客户端的正确方法是什么?

.net c# wcf json web-services

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

如何使Visual Studio将所有文件保存为UTF-8而不在项目或解决方案级别签名?

我试图以一种可以在Linux中由gcc编译的方式配置VS c ++项目.似乎我需要将文件编码为UTF-8而不签名(这不是默认值).是否可以在项目或解决方案级别设置某些内容,以便在有人打开解决方案并保存其更改后,文件仍为UTF-8?

请注意,它是一个开放项目,所以我不能要求每个人都改变他们的Visual Studio设置.

c++ encoding visual-studio

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

有效复制多个文件

我必须将很多文件从一个文件夹复制到另一个文件夹.目前我这样做:

string[] files = Directory.GetFiles(rootFolder, "*.xml");
foreach (string file in files)
{
    string otherFile = Path.Combine(otherFolder, Path.GetFileName(file));
    File.Copy(file, otherFile);
}
Run Code Online (Sandbox Code Playgroud)

这是最有效的方式吗?似乎需要很长时间.

编辑:我真的问是否有更快的方法来进行批量复制,而不是复制单个文件,但我想答案是否定的.

.net c# copy file

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

UTF-16到UTF-8转换(用于Windows中的脚本)

将UTF-16文件转换为UTF-8的最佳方法是什么?我需要在cmd脚本中使用它.

windows cmd batch-file utf-8 utf-16

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

wcf json网络服务

创建JSON Web服务的最佳方法是什么?我们有另一个使用Java的团队,他们坚持使用JSON完成所有通信.我更愿意使用WCF而不是任何第三方框架.

我发现这个博客:http://www.west-wind.com/weblog/posts/164419.aspx,它表明微软的实现存在M $特定废话的缺陷.

.net c# wcf json

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

boost中的分位数函数(C++)

从文档提升来看,似乎为正态分布和伽玛分布提供了分位数函数(逆cdf函数),但我不清楚如何实际使用它们.有人可以贴一个例子吗?

c++ boost quantile

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

F#中的动态编程

实现动态编程算法以解决重叠子问题的问题最优雅的方法是什么?在命令性编程一个通常会产生由该问题的大小索引(至少在一个维度上)的阵列,然后算法将从最简单的问题开始并朝着更复杂一次工作,使用已经计算出的结果.

我能想到的最简单的例子是计算Nth Fibonacci数:

int Fibonacci(int N)
{
    var F = new int[N+1];
    F[0]=1;
    F[1]=1;
    for(int i=2; i<=N; i++)
    {
        F[i]=F[i-1]+F[i-2];
    }
    return F[N];
}
Run Code Online (Sandbox Code Playgroud)

我知道你可以在F#中实现相同的功能,但我正在寻找一个很好的功能解决方案(显然也是O(N)).

f# functional-programming

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

F#中的其他构造函数

我试图在F#中创建一个额外的构造函数,它执行一些额外的工作(即读取基本的csv文件),如下所示:

type Sheet () =
  let rows = new ResizeArray<ResizeArray<String>>()
  let mutable width = 0

  new(fileName) as this = 
    Sheet() 
    then
      let lines = System.IO.File.ReadLines fileName
      for line in lines do
        let cells = line.Split ','
        rows.Add(new ResizeArray<String> (cells)) //line 16
        if cells.Length > width then width <- cells.Length
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Error   1   The namespace or module 'rows' is not defined   C:\Users\ga1009\Documents\PhD\cpp\pmi\fsharp\pmi\Csv.fs 16
Error   2   The value or constructor 'width' is not defined C:\Users\ga1009\Documents\PhD\cpp\pmi\fsharp\pmi\Csv.fs 17
Error   3   The value or constructor …
Run Code Online (Sandbox Code Playgroud)

f#

10
推荐指数
2
解决办法
4339
查看次数