我有一个枚举类型StackID
,我使用枚举来引用特定向量的索引,它使我的代码更容易阅读.
但是,我现在需要创建一个名为nextAvail
type 的变量StackID
.(它实际上指的是特定的stackID).我尝试增加它,但在C++中,以下是非法的:
nextAvail++;
Run Code Online (Sandbox Code Playgroud)
哪种对我有意义...因为没有界限检查.
我可能忽略了一些明显的东西,但什么是一个很好的替代品呢?
我也想链接到这个问题.
我上课了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) 我并不真正理解GDB手册中对劣等的解释,谷歌并没有产生任何更多帮助.
任何人都可以用简单的术语解释"劣等"吗?
我试图将许多复制命令的成功或失败记录到日志文件中.我正在使用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文档中看到这个描述.
我想我也希望能够捕获返回值,这样脚本就不会在复制失败时爆炸 - 我试图让它继续而不管错误.
谢谢.
我正在尝试使用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) 有没有办法在Win32中定义和发送自定义消息类型,以便被主消息处理程序捕获?例如,我的主消息处理程序捕获诸如WM_PAINT,WM_RESIZE,WM_LBUTTONDOWN等消息.我可以创建自己的WM_DOSOMETHING吗?如果是这样,我将如何发送此消息?
啊,我实际上刚刚发现这是在此之前被问到的,但是,它并没有回答我实际发送此消息的方式.
我将第三方标题和源文件包含到我的项目中.
在标题的顶部有这样的:
#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?
我正在阅读有关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()
这里?
我遇到了以下代码,并被告知这意味着它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++测验.并且遇到了以下代码 - 这是非法的,但我无法理解为什么.谁能解释为什么这一行:
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++ ×6
c ×2
python ×2
bind ×1
exception ×1
gdb ×1
inheritance ×1
javascript ×1
logging ×1
lxml ×1
typechecking ×1
types ×1
winapi ×1
windows ×1