小编J. *_*fer的帖子

GDB跳过我的代码!

所以,我已经定义了一个类

DataLoggingSystemStateReceiver
{
DataLoggingSystemStateReceiver()
:   // initializer list
{
    // stuff
}

//  ... other functions here

};
Run Code Online (Sandbox Code Playgroud)

在main中,我实例化DataLoggingSystemStateReceiver,如下所示:

int main()
{
    // ... run stuff
    Sensor sensor(port, timer);

    DataLoggingSystemStateReceiver dlss();

    Log::notice("started");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在gdb中单步执行此代码时,它运行:

Sensor sensor(port, timer);
Run Code Online (Sandbox Code Playgroud)

跳过

DataLoggingSystemStateReceiver dlss();
Run Code Online (Sandbox Code Playgroud)

并继续

Log::notice("started");
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?


编辑: 通过改变

DataLoggingSystemStateReceiver dlss();
Run Code Online (Sandbox Code Playgroud)

DataLoggingSystemStateReceiver dlss;
Run Code Online (Sandbox Code Playgroud)

在main()中,该行执行.有人可以解释原因吗?

c++ gdb

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

C++:自动const?

当我编译这段代码时:

class DecoratedString
{
private:
    std::string m_String;
public:
     // ... constructs, destructors, etc
     std::string& ToString() const
     {
         return m_String;
     }
}
Run Code Online (Sandbox Code Playgroud)

我从g ++中得到以下错误:invalid initialization of reference of type 'std::string&" from expression of type 'const std::string'.

为什么m_String被视为const?编译器不应该只是在这里创建引用吗?

编辑:

此外,我应该怎么做才能使这个函数作为一个字符串的转换,在大多数情况下将起作用? 我做了函数const,因为它不修改内部字符串...也许我只需要让它返回一个副本...

编辑:好的......让它返回一份副本.

c++ const-correctness

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

任何人都可以帮我使用Windows API NetApi32吗?

我想获取特定机器上的共享列表.所以我决定使用Windows API NetApi32.dll.这是我的代码片段:

Dim svr As String = Environment.MachineName
Dim level As Integer = 2
Dim sharesRead As Integer, totalEntries As Integer, nRet As Integer, hResume As Integer = 0
Dim pBuffer As IntPtr = IntPtr.Zero

nRet = NetApi32.NetShareEnum(svr, level, pBuffer, -1, sharesRead, totalEntries, hResume)
Run Code Online (Sandbox Code Playgroud)

我得到了1231的返回码,但似乎无法找到相同的东西.如果不正确的话,有人能指出我如何做到这一点的正确方向吗?

.net winapi netapi32

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

更改重复键阈值c ++

我正在构建一个c ++ tetris游戏(不是c ++ .Net).我觉得我的控制很奇怪.我想这样做,以便当用户按下其中一个箭头键时,大约10ms的按住它将启动窗口重复功能.它默认设置为约500毫秒,对我的游戏来说太迟了.如何设置从keydown更改为重复keydown的速度?不是重复多少次/秒.

谢谢

*我想要做的是将重复延迟更改为短

在键盘设置的控制面板中有重复率,我该如何设置?

c++ winapi native

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

选择退出复制构造函数

这可能是一个愚蠢的问题,但......

我一直在写一些利用不可复制成员的课程.这些类永远不会通过我的源代码中的复制构造函数初始化.当我尝试编译而不提供我自己的拷贝构造函数时,由于不可复制的成员对象,g ++抛出了很多关于如何无法构建默认拷贝构造函数的错误.

有没有办法告诉编译器不给我一个复制构造函数?

编辑: 是的... 感觉很傻 ......我有一个案例,我在boost :: bind调用中偶然调用了copy-constructor.学过的知识.

c++ g++ default-copy-constructor

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

通过继承和交叉委派重用代码

假设我在C++中有以下类层次结构:

class AbstractBaseClass
{
public:
    // Note:  Class is completely abstract! No data!
    AbstractBaseClass() {}
    virtual ~AbstractBaseClass() {}
    virtual std::string definedInVirtual() = 0;
    virtual std::string definedInDerived() = 0;
};

class Virtual : public virtual AbstractBaseClass
{
public:
    Virtual() {}
    virtual ~Virtual() {}

    std::string definedInVirtual()
    {
        return "definedInVirtual";
    }
};

class DerivedA : public Virtual
{
public:
    DerivedA() {}
    virtual ~DerivedA() {}

    std::string definedInDerived()
    {
        return "definedInDerivedA";
    }
};

class DerivedB : public Virtual
{
public:
    DerivedB() {}
    virtual ~DerivedB() {} …
Run Code Online (Sandbox Code Playgroud)

c++ code-reuse

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

提高我的正则表达能力

我一直想要提高我的正则表达技能已经有一段时间了,而且"掌握正则表达式"被推荐了很多次,所以我买了它并且在过去一天左右阅读它.

我创建了以下正则表达式:

^(?:<b>)?(?:^<i>)?<a href="/site\.php\?id=([0-9]*)">(.*?) \(([ a-z0-9]{2,10})\)</a>(?:^</i>)?(?:</b>)?$
Run Code Online (Sandbox Code Playgroud)

哪个匹配前两个链接但忽略<i>标记所包含的两个链接.它提取id,标题和类型.

<a href="/site.php?id=6321">site 1 title (type 1)</a>
<b><a href="/site.php?id=10254">site 2 title (type 2)</a></b>

<i><a href="/site.php?id=5479">site 3 title (type 3)</a></i>
<b><i><a href="/site.php?id=325">site 4 title (type 4)</a></i></b>
Run Code Online (Sandbox Code Playgroud)

虽然它有效,但对于这么简单的东西来说似乎相当长,可以改进吗?

html regex matching

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

SQL为一组id选择连接字符串

我必须处理一个mssql数据库和表中给出的信息,如下所示:

Users:

ID Name    Countries
--------------------
1  User1   1,2,3
2  User2   2,5

Countries:
ID Country
----------
1  Australia
2  Germany
3  USA
4  Norway
5  Canada
Run Code Online (Sandbox Code Playgroud)

现在,我正在寻找的是一个select语句,它将给我一个这样的结果:

Result:
ID User   CountriesByName
-----------------------------
1  User1  Australia, Germany, USA
2  User2  Germany, Canada
Run Code Online (Sandbox Code Playgroud)

我更喜欢一种解决方案,它不依赖于特殊的MSSQL语法,但我无法使用一些LINQ-magic :(

sql sql-server select join

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