问题列表 - 第6642页

重载=在C++中

我正在尝试重载赋值运算符,并希望清除一些事情,如果可以的话.

我有一个非成员函数,bool operator==( const MyClass& obj1, const myClass& obj2 )定义了我班级的oustide.

出于显而易见的原因,我无法找到任何私人会员.

所以我认为我需要做的是重载赋值运算符.并在非成员函数中进行赋值.

话虽如此,我想我需要做以下事情:

  1. 使用我的功能并使用strcpy或复制信息strdup.我用过strcpy.
  2. 转到赋值运算符,bool MyClass :: operator =(const MyClass&obj1);
  3. 现在我们转到函数重载(==)并将obj2赋给obj1.

我没有复制构造函数,所以我坚持这些:

class Class
{
private:
m_1;
m_2;
public:
..
};

void Class::Func1(char buff[]) const
{   
    strcpy( buff, m_1 );
    return;
}
void Class::Func2(char buff[]) const
{
    strcpy( buff, m_2 );
    return;
}

bool Class& Class::operator=(const Class& obj)
{ 
    if ( this != &obj ) // check for self assignment.
    {
        strcpy( …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

0
推荐指数
2
解决办法
481
查看次数

如何使用MSBuild运行MSUnit测试

我有一个MSBuild脚本,看起来类似于:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">

        <MSBuild Projects="MyProject.UnitTest.sln" Targets="Build" />

    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

如何运行解决方案中的MSTest单元测试?

我正在寻找类似于TFS Build中可以使用的东西:

<TestContainerInOutput Include="%2a%2a\%2aTest.dll" />
Run Code Online (Sandbox Code Playgroud)

msbuild mstest

5
推荐指数
0
解决办法
6987
查看次数

内容范围和范围标题之间的区别?

HTTP标头内容范围和范围之间有什么区别?什么时候应该使用?

我正在尝试从特定字节偏移量流式传输音频文件.我应该使用Content-Range还是Range标头?

谢谢

http http-headers

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

基于格式字符串的智能可变扩展

我有一个守护进程,它读取配置文件以便知道在哪里写东西.在配置文件中,存在如下行:

output = /tmp/foo/%d/%s/output
Run Code Online (Sandbox Code Playgroud)

或者,它可能看起来像这样:

output = /tmp/foo/%s/output/%d
Run Code Online (Sandbox Code Playgroud)

......或者只是这样:

output = /tmp/foo/%s/output
Run Code Online (Sandbox Code Playgroud)

......或者最后:

output = /tmp/output
Run Code Online (Sandbox Code Playgroud)

我在程序中将该行作为cfg-> pathfmt.我现在要做的是想出一些巧妙的使用方法.

再解释一下,路径最多可以包含两个要格式化的组件.%d将作为作业ID(int)扩展,%s将作为作业名称(字符串)扩展.用户可能希望在配置文件中使用一个,两个或不使用.在我最终将它传递给snprintf()之前,我需要知道他们想要什么,以什么顺序.我可以把它缩小范围,但我一直想和strtok()谈谈,这看起来很难看.

我希望为用户提供这种灵活性,但是我正在寻找一种合理,便携的方式来实现它.对于如何开始搜索这个问题,我也完全失败了.

如果符合以下条件,我会非常高兴:

  • 有人可以帮我缩小搜索短语以找到好的例子
  • 有人可以发布指向实现此功能的OSS项目的链接
  • 有人可以发布一些伪代码

我不希望为我编写代码,我只是坚持(我认为)应该是非常简单的东西,并需要一些帮助第一口.我真的觉得我在思考并忽略了明显的东西.

最终结果应该是这样的布尔函数:

bool output_sugar(const char *fmt, int jobid, const char *jobname, struct job *j);
Run Code Online (Sandbox Code Playgroud)

然后它将在j-> outpath上调用snprintf()(明智地),如果某种垃圾(即%后跟不是s,d或%的东西)在配置行(或其null)中则返回false.完整性检查很容易,我只是有点时间获取格式正确的参数的数量(和顺序).

提前致谢.此外,如果您有这样的声誉,请随时编辑此标题,正如我所说,我不太确定如何在一行中提出问题.我认为我需要的是一个解析器,但使用一个完整的词法分析器/解析器处理一个简单的字符串感觉很尴尬.

c string variadic tokenize

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

学习设计模式的资源

最近我发现了这种设计模式的概念,并且对它非常热衷.你们能提出一些资源来帮助我深入了解设计模式吗?

c# asp.net design-patterns

9
推荐指数
2
解决办法
3400
查看次数

反向IP域检查?

有一个网站,您可以使用域查询,它将返回该IP上托管的所有网站的列表.我记得在C#中有一个类似于ReturnAddresses或类似东西的方法.有谁知道这是怎么做的?查询主机名或IP并返回主机名列表,也就是托管在同一服务器上的其他网站?

该网站是:http://www.yougetsignal.com/tools/web-sites-on-web-server/

c# dns

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

C++ STL:哪种迭代方法比STL容器更好?

这对你们中的一些人来说可能看起来很无聊,但是对于STL容器,以下哪两种迭代方法更好?为什么

class Elem;
typedef vector<Elem> ElemVec;
ElemVec elemVec;

// Method 0
for (ElemVec::iterator i = elemVec.begin(); i != elemVec.end(); ++i)
{
    Elem& e = *i;
    // Do something
}

// Method 1
for (int i = 0; i < elemVec.size(); ++i)
{
    Elem& e = elemVec.at(i);
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

方法0似乎更清晰STL,但方法1使用较少的代码实现相同.在容器上简单重复的事情似乎在以任何源代码的地方.所以,我倾向于选择方法1,这似乎可以减少视觉混乱和代码大小.

PS:我知道迭代器可以做的不仅仅是一个简单的索引.但是,请将回复/讨论集中在如上所示的容器上的简单迭代上.

c++ containers iterator stl

12
推荐指数
4
解决办法
3335
查看次数

如何在Ruby中为字符串添加单个反斜杠字符?

我想在"儿童世界"字符串中的撇号之前插入反斜杠.有一个简单的方法吗?

irb(main):035:0> s = "children's world"
=> "children's world"
irb(main):036:0> s.gsub('\'', '\\\'')
=> "childrens worlds world"
Run Code Online (Sandbox Code Playgroud)

ruby string

12
推荐指数
3
解决办法
7342
查看次数

返回实体框架中的普通对象以进行序列化

我一直在我的ASP.NET MVC应用程序中尝试Linq to Sql和EF.切换到EF后,我意识到我的XML/JSON序列化输出有额外的缺点.

XML:

<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <EntityKey>
    <EntitySetName>Persons</EntitySetName>
    <EntityContainerName>PersonEntities</EntityContainerName>
    <EntityKeyValues>
      <EntityKeyMember>
        <Key>Id</Key>
        <Value xsi:type="xsd:int">1</Value>
      </EntityKeyMember>
    </EntityKeyValues>
  </EntityKey>
  <Id>1</Id>
  <Name>John</Name>
</Test>
Run Code Online (Sandbox Code Playgroud)

JSON:

{"Id":1,"Name":"John","EntityState":2,"EntityKey"{"EntitySetName":"Persons","EntityContainerName":"PersonEntities","EntityKeyValues":[{"Key":"Id","Value":1}],"IsTemporary":false}}
Run Code Online (Sandbox Code Playgroud)

相反,我只想我的输出:

{"Id":1, "Name":"John"}
Run Code Online (Sandbox Code Playgroud)

我检索对象的EF查询是:

Tests.First(t => t.Id == testId);
Run Code Online (Sandbox Code Playgroud)

serialization json entity-framework poco linq-to-sql

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

计算文件HASH返回不同的值

有谁知道,为什么以下代码在某些机器上返回不同的结果?

Private Shared Function ComputeHashValue(ByVal Data As String) As String
    Dim HashAlgorithm As SHA512 = SHA512.Create
    Dim HashValue() As Byte = HashAlgorithm.ComputeHash(Encoding.ASCII.GetBytes(Data))
    ' Looping over the array and ANDing each byte with 0111111
    For i As Integer = 0 To HashValue.Length - 1
        HashValue(i) = HashValue(i) And Convert.ToByte(127)
    Next
    Return Encoding.ASCII.GetString(HashValue)
End Function

Private Shared Function AreByteArraysEqual(ByVal array1 As Byte(), ByVal array2 As Byte()) As Boolean
    If array1.Length <> array2.Length Then Return False
    For i As Integer = 0 To …
Run Code Online (Sandbox Code Playgroud)

.net hash sha512

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