小编qua*_*ana的帖子

是否为C++中的Default Constructor创建了汇编代码

如果我没有在C++或任何其他构造函数的类中定义默认构造函数,我已经读过编译器为您创建一个默认构造函数.但是我创建了一个测试类,将其编译为汇编代码并进行检查以发现没有创建任何排序.
有人可以澄清如何创建默认构造函数的代码,或者它是否首先创建?

c++ default-constructor

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

tcp/ip是否传达完整的消息?

我正在构建一个库,用于维护c ++中应用程序之间的网络连接.在一些debuging期间,我发现从socket获得的一些信息似乎不完整.至关重要的是这个信息是完整的,因为如果我用协议缓冲区的库解码它,我需要完整的消息.

这种现象不是一成不变的.有时我从套接字获取所有数据,有时不是.测试过程如下:启动服务器,多次启动客户端.我得到的是从receive()描述某些变量值如何变化的函数输出.其中一个是我用来存储数据的缓冲区的大小.该大小告诉我缓冲区中有多少数据.在此特定测试中,客户端发送两个大小为3(字节)的消息.我希望缓冲区大小是3的倍数.但是,有时大小是4!这意味着程序读取一个完整的消息和第二个消息的1/3.我不明白为什么我总是先完成消息.否则,protobuf将终止该程序.

我认为tcp/ip应该注意我得到完整的消息.我的问题是我不知道提前的大小.我希望收到完整的信息,以便我可以将其解释为核心.

network-programming tcp

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

C++替换ios :: noreplace

我正在使用fstream打开文件进行写入.我不想覆盖现有文件,所以经过一些搜索后,我找到了ios :: noreplace.但是当我编译它时:

#include <fstream>
using namespace std;
//......Did something else.
ofstream fout;
fout.open(outputFile,ios::noreplace);//outputFile is a C string
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

 error: ‘noreplace’ is not a member of ‘std::ios’
Run Code Online (Sandbox Code Playgroud)

我只是想知道ios :: noreplace有没有std :: subsitution?

c++ fstream std

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

()运算符重载

之前已经问过这个问题,但没有得到满意的答复.

我有一个充当事件处理程序的类,我希望有一个很好的语法来调用事件之外的事件处理程序.这归结为覆盖()运算符.我现在有

class EventHandler
{
public:
    void Call(void* sender, EventArgs e);

    void operator() (void* sender, EventArg e){ Call(sender, e); }
};
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.我可以通过调用事件处理程序

EventHandler EH;
EH(nullptr, EventArgs::Empty());
Run Code Online (Sandbox Code Playgroud)

我的问题在于我通常将事件处理程序存储在堆上,因此我需要

EventHandler* EH;
EH(nullptr, EventArgs::Empty());  // error but this is the syntax I'm hoping for
Run Code Online (Sandbox Code Playgroud)

但这只能用

EventHandler* EH;
(*EH)(nullptr, EventArgs::Empty());  // no error
Run Code Online (Sandbox Code Playgroud)

如何覆盖()运算符以使其与指向EventHandler对象的指针一起使用?我已经看到一些看起来像重载 - >()运算符而不仅仅是()运算符的东西,但我无法弄清楚它.

c++ c++11

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

尝试创建一个从列表中删除单词的递归程序

def main():

    def remove(alist,word):
        if alist[0] == word:
            return remove(alist[1:],word)
        else:
            return [alist[0]] + remove(alist[1:],word)

    list1 = ['dog','cat','horse','dog','cat','horse']

    print(remove(list1,'dog'))

main()
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我不确定它有什么问题.有一个错误,指出索引超出范围我认为与我的第三行有关,但我不知道如何解决它.

python recursion

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

如果第一个元素是重复的,则从列表中删除元组的大多数pythonic方法

到目前为止我的代码非常难看:

orig = [(1,2),(1,3),(2,3),(3,3)]
previous_elem = []
unique_tuples = []
for tuple in orig:
    if tuple[0] not in previous_elem:
        unique_tuples += [tuple]
    previous_elem += [tuple[0]]
assert unique_tuples == [(1,2),(2,3),(3,3)]
Run Code Online (Sandbox Code Playgroud)

必须有更多的pythonic解决方案.

python tuples list

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

如果指针已被删除,指针容器如何才能拥有指针的所有权?

在这段代码中,我尝试创建一个模板类P_array,用于存储指向对象的指针,如下所示.只有模板类存储指针并删除它们,如果在使用后没有删除它们.所以我应该NULL检查一下.

虽然这个问题在其他问题中得到了解决.我真的不明白如何检查指针是否为NULL.

在析构~P_array()函数中检查NULL指针无效.

我尝试了类似的东西std::shared_ptr来解释这个想法.

p_array析构函数:

~P_array() {
    unsigned int i = 0;
    while(i < total)
    {
        if (t_array[i])        //Not effective
        {
            std::cout << "deleting " << t_array[i] << "\n" ;
            delete (t_array[i]); //Ownership of pointer
        }
        i++;
    }
}    
Run Code Online (Sandbox Code Playgroud)

main.cpp:

#include <iostream>
#include <memory>
#include "p_array.h"


class Obj {
    public: ~Obj () { std::cout << "Deleting Obj...\n" ;}
};


int main() {
    P_array<Obj> ap;
    Obj * op[10];

    for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ pointers c++11

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

如何在 Dolphin Smalltalk 中创建 SUnit 测试?

我已经为 Dolphin Smalltalk 框架创建了一个小的(测试)补充,我想稍后在 GitHub 上提交。(1 方法:)Integer>>isPrime但首先,我想将此方法的测试方法添加到标准回归测试集中,现在有约 2400 个测试。( IntegerTest>>testIsPrime) 我找到了类TestCaseDolphinTestIntegerTestSUnit 浏览器。但我没有找到如何将我的测试添加到标准测试集中。

有人能给我指出正确的方向吗?

smalltalk dolphin-smalltalk

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

如何将表情符号彼此分开?

例如,我需要将表情符号彼此分开

EM = 'Hey '
EM.split()
Run Code Online (Sandbox Code Playgroud)

如果我们拆分它,我们将拥有

['Hey' ,'']
Run Code Online (Sandbox Code Playgroud)

我希望有

['hey' , '' , '' , '']
Run Code Online (Sandbox Code Playgroud)

我希望将其应用于所有表情符号。

python emoji

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

如何在python列表中搜索几个元素?

我想编写一个程序,找出有多少[a,b,c][a,a, b,c,d,a,a,b,c,c,d,d,d]

我想要的答案是2。

a's列表中有四个,但分别b为2和c3。因此,我想获得最少数量的[a,b,c]

python list

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