小编Bee*_*and的帖子

为什么我不能增加枚举类型的变量?

我有一个枚举类型StackID,我使用枚举来引用特定向量的索引,它使我的代码更容易阅读.

但是,我现在需要创建一个名为nextAvailtype 的变量StackID.(它实际上指的是特定的stackID).我尝试增加它,但在C++中,以下是非法的:

nextAvail++;
Run Code Online (Sandbox Code Playgroud)

哪种对我有意义...因为没有界限检查.

我可能忽略了一些明显的东西,但什么是一个很好的替代品呢?


我也想链接到这个问题.

c++

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

创建一个空类纯粹是为了区别于另一个类的良好实践?

我上课了CardStack.我有几类,从继承CardStack例如Cascade,Deck,Foundation等.

Foundation不需要添加任何功能CardStack,但出于显示目的,我的应用程序需要知道哪些CardStack是实际Foundation的.

顺便说一句,我没有这样的功能CardStack.Display()(我正在使用模型 - 视图 - 控制器模式,其中View对象只是查询它Model以找出它正在处理的对象类型).

对我来说似乎没问题,但有什么理由这样做吗?

class Foundation : public CardStack
{

};

class Model
{
    Cascade cascade[10];
    Foundation foundations[10];
    ...
};
Run Code Online (Sandbox Code Playgroud)

c++

17
推荐指数
2
解决办法
690
查看次数

在"劣质调试器"这个术语中,"劣等"意味着什么?

我并不真正理解GDB手册中对劣等的解释,谷歌并没有产生任何更多帮助.

任何人都可以用简单的术语解释"劣等"吗?

gdb

15
推荐指数
2
解决办法
7663
查看次数

如何在Python(DOS)中捕获shutil.copy()的返回值?

我试图将许多复制命令的成功或失败记录到日志文件中.我正在使用shutil.copy()- 例如

str_list.append(getbitmapsfrom) 
game.bigbitmap = "i doubt this is there.bmp"
str_list.append(game.bigbitmap)
source = '\\'.join(str_list)
shutil.copy(source, newbigbmpname)
Run Code Online (Sandbox Code Playgroud)

我强制我的脚本中的一个复制命令失败,并且它生成了错误:

[Errno 2] No such file or directory: 'X:\PJ_public\PJ_Services\BSkyB-PlayJam\Content\P_NewPortal2009\1.0.0\pframes\i doubt this is is there.bmp'

这很好,但我可以捕获"Errno 2 No such file or directory"并将其写入日志文件吗?并shutil.copy()返回一个整数值? - 我没有在Python文档中看到这个描述.

我想我也希望能够捕获返回值,这样脚本就不会在复制失败时爆炸 - 我试图让它继续而不管错误.

谢谢.

python logging exception

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

如何将xml文件传递给lxml进行解析?

我正在尝试使用lxml解析xml文件.xml.etree允许我简单地将文件名作为参数传递给parse函数,所以我尝试用lxml做同样的事情.

我的代码:

from lxml import etree
from lxml import objectify

file = "C:\Projects\python\cb.xml"
tree = etree.parse(file)
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Traceback (most recent call last):
  File "cb.py", line 5, in <module>
    tree = etree.parse(file)
  File "lxml.etree.pyx", line 2698, in lxml.etree.parse (src/lxml/lxml.etree.c:4
9590)
  File "parser.pxi", line 1491, in lxml.etree._parseDocument (src/lxml/lxml.etre
e.c:71205)
  File "parser.pxi", line 1520, in lxml.etree._parseDocumentFromURL (src/lxml/lx
ml.etree.c:71488)
  File "parser.pxi", line 1420, in lxml.etree._parseDocFromFile (src/lxml/lxml.e
tree.c:70583)
  File "parser.pxi", line 975, in lxml.etree._BaseParser._parseDocFromFile (src/
lxml/lxml.etree.c:67736)
  File "parser.pxi", line 539, in lxml.etree._ParserContext._handleParseResultDo
c …
Run Code Online (Sandbox Code Playgroud)

python lxml

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

在win32中创建自定义消息类型?

有没有办法在Win32中定义和发送自定义消息类型,以便被主消息处理程序捕获?例如,我的主消息处理程序捕获诸如WM_PAINT,WM_RESIZE,WM_LBUTTONDOWN等消息.我可以创建自己的WM_DOSOMETHING吗?如果是这样,我将如何发送此消息?

啊,我实际上刚刚发现这是在之前被问到的,但是,它并没有回答我实际发送此消息的方式.

c c++ windows winapi

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

WIN32定义在哪里,如何在我的项目中包含此定义?

我将第三方标题和源文件包含到我的项目中.

在标题的顶部有这样的:

#if defined(WIN32) || defined(WIN16)
#ifndef MSDOS
#define MSDOS
#endif
#endif

#include <stdio.h>
#include <stdlib.h>
#ifndef MSDOS
#include <unistd.h>
#endif
#include "des.h"
Run Code Online (Sandbox Code Playgroud)

问题是#if定义(WIN32)失败并且在尝试#include unistd.h时编译失败,我不想这样做.

我有第三方项目使用此头文件,即WIN32已定义,它不会尝试包含在Visual Studio中我在"WIN32"上执行"转到定义",并在WinDefs.h中采用以下定义.

#define WIN32
Run Code Online (Sandbox Code Playgroud)

我不确定这是从哪个获取WIN32定义,因为第三方项目似乎不包括"WinDefs.h".

所以我的问题是,如何在我当前的新项目中定义WIN32?

c++ visual-studio-2010

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

将`undefined`传递给bind()是什么意思?

我正在阅读有关bind()javascript函数的一些文档.

其中一个例子开头是这样的:

function list() {
  return Array.prototype.slice.call(arguments);
}

var list1 = list(1, 2, 3); // [1, 2, 3]

//  Create a function with a preset leading argument
var leadingZeroList = list.bind(undefined, 37);

var list2 = leadingZeroList(); // [37]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

究竟是什么意思传递(undefined, 37)bind()这里?

javascript bind

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

是什么让这段代码"endian独立"?

我遇到了以下代码,并被告知这意味着它COL_8888_RED是"endian independent".为什么?是什么让这个端点独立?(我问过原来的编码员,但他们没有回复我...... 他们也许也不知道.)

union _colours {
    uint8  c[3][4];
    uint32 alignment;
};

static const union _colours col_8888 = {
        {    /*   B     G     R     A  in memory     */
                {    0x00, 0x00, 0xFF, 0xFF, }, /* red   */
                {    0x00, 0xFF, 0x00, 0xFF, }, /* green */
                {    0xFF, 0x00, 0x00, 0xFF, }, /* blue  */
        }
};

#define COL_8888_RED   *((uint32 *)&col_8888.c[0])
Run Code Online (Sandbox Code Playgroud)

c c++

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

继承 - 为什么这是非法的?

我正在进行C++测验.并且遇到了以下代码 - 这是非法的,但我无法理解为什么.谁能解释为什么这一行:

Box* b1 = s1->duplicate();
Run Code Online (Sandbox Code Playgroud)

生成编译器错误,"无法从Shape*转换为Box"?我假设s1->duplicate()正在调用Box::duplicate()因为s1实际指向a Box- 但是从编译器错误看起来它正在调用Shape::duplicate().

#include <iostream>

struct Shape
{
  virtual Shape* duplicate()
  {
    return new Shape;
  }

  virtual ~Shape() {}
};

struct Box : public Shape
{
  virtual Box* duplicate()
  {
    return new Box;
  }

};

int main(int argc, char** argv) 
{ 
  Shape* s1 = new Box;

  Box* b1 = s1->duplicate();

  delete s1;
  delete b1;
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance types typechecking

8
推荐指数
2
解决办法
390
查看次数