我有一个关于Constructors的问题.我认为构造函数只是我们的方便而不是setter方法,对吧?因此,对于一个对象,您认为重要的属性(例如webform中的必需字段)将作为参数传递给构造函数.
是否有任何标准要将这么多参数传递给构造函数?请详细说明这些要点以及有关构造函数的任何要点.
编辑:抱歉我问问题的方式.是的,我们用构造函数创建一个对象,我们用setter赋值,但我的问题是默认构造函数与setter和构造函数与显式参数之间的比较.
我正在做一些有趣的复古编程.我想要创建的是使用EGA图形的DOS游戏,但我在网上找到一个很好的参考有点麻烦.每个谈论做DOS编程的人都假设程序员会使用模式13h,虽然有些页面提到了其他图形模式,但我还没有找到一个讨论正确使用的模式.
这就是我现在要努力的方法:
//------------------------------------------------------------------------------
// DOS graphics test
//
// Thanks to the following links:
// http://gamebub.com/cpp_graphics.php
//
// Written for Digital Mars C compiler to be compiled as a DOS 16 bit binary.
//------------------------------------------------------------------------------
#include <dos.h>
#include <stdio.h>
#define SCREEN_WIDTH 320;
#define SCREEN_HEIGHT 200;
unsigned char far *vram = (unsigned char far *)0xA0000000L;
//------------------------------------------------------------------------------
void set_video_mode(unsigned char mode)
{
union REGS in, out;
in.h.ah = 0;
in.h.al = mode;
int86(0x10, &in, &out);
}
//------------------------------------------------------------------------------
void plot_pixel(unsigned int x, unsigned int …
Run Code Online (Sandbox Code Playgroud) 我有一个初始化的数组,可能不包含任何项目.
让我们来吧a
,
调用GetType()
上a
显然会返回一个数组类型.是否可以获取数组包含的项的类型?
显然a[0].GetType()
可以工作,但是数组可能是空的并导致空引用异常.
我公司开发了一种使用虚拟COM端口通过蓝牙与PC通信的设备.
现在我们需要用户首先将设备与PC(MS Windows操作系统)配对,然后手动输入它的com端口号到我们的应用程序中(我敢打赌,95%的用户将在此设备上失败).
所以我希望我的应用程序向用户提供配对蓝牙设备列表(他们的"友好名称"列表),之后我想自动找出被选中设备的COM端口号.
我怎么能在c#中做到这一点?(独立于已安装的蓝牙堆栈的解决方案表示赞赏).
提前致谢.
清理使用硬编码整数文字而不是枚举的旧c/c ++代码,找到功能声明已被正确重构但不是正文的地方是很繁琐的.例如
enum important {
little = 1,
abit = 2,
much = 3
};
void blah(int e)
{
// magic stuff here
}
void boing(int e) { ... }
void guck(important e)
{
switch (e) {
case 3: // this would be a good place for a warning
blah(e); // and this
break;
default:
boing((int)e); // but this is OK (although imperfect and a warning would be acceptable)
break;
}
}
Run Code Online (Sandbox Code Playgroud)
注释/修改每个枚举类型或通过代码搜索它们也是相当多的工作,因为存在非常多的不同枚举,因此这不是优选的,但可以是可接受的解决方案.
我不需要它在我们的任何主编译器或其他工具(主要是gcc)或平台(大多数),手动运行几次就足够了,但我更喜欢不太深奥或昂贵的东西.
我正在使用一些类,这些类在抛出时具有相对较深的InnerException树.我想记录并采取最内部的异常,这是具有问题真正原因的异常.
我目前正在使用类似的东西
public static Exception getInnermostException(Exception e) {
while (e.InnerException != null) {
e = e.InnerException;
}
return e;
}
Run Code Online (Sandbox Code Playgroud)
这是处理异常树的正确方法吗?
我搜索一个网络爬虫解决方案,它可以很成熟,可以简单地扩展.我对以下功能感兴趣...或者扩展爬虫以满足它们的可能性:
上面的内容可以一个接一个地完成而不需要付出太大的努力,但我对任何提供可定制的,可扩展的爬虫的解决方案感兴趣.我听说过Apache Nutch,但到目前为止对这个项目非常不确定.你有经验吗?你能推荐替代品吗?
我们遇到的问题是,解决方案似乎是为特定站点回收应用程序池(我们无法控制的CMS问题,我不会在此处讨论).
我的问题是,虽然这似乎有效,但如果网站上有用户进行付款等,如果我们回收将会启动它们吗?
谢谢邓肯
使用gcc,当我使用typeid请求对象/变量的类型时,我得到了与我期望在Windows上获得的type_info :: name方法不同的结果.我用Google搜索了一下,发现RTTI名称是特定于实现的.
问题是,我想获得一个类型的名称,因为它将在Windows上返回.是否有捷径可寻?
我是一名学习c ++开发人员,最初使用XCode在Mac平台上编写游戏,但现在通过利用CMake进入跨平台.到目前为止,我可以在我的ickle linux上网本上编译它,并且我正在将这个机器上的开发环境放在一起进行编码.但是我发现每当我做出改变时,gcc都会重新编译每个文件.显然,我需要对CMakeLists.txt进行一些额外的配置.我现在很简单.像这样;
cmake_minimum_required (VERSION 2.8)
set (source
Creature.cpp
DisplayManager.cpp
Engine.cpp
EngineState.cpp
Entity.cpp
GameWorld.cpp
GfxSFML.cpp
Item.cpp
Map.cpp
Position.cpp
Projectile.cpp
ScreenTile.cpp
SquadAI.cpp
Terrain.cpp
UIButton.cpp
UICharPanel.cpp
UIView.cpp
Utility.cpp
Weapon.cpp
fov.cpp
main.cpp
)
find_package (OpenAL)
find_package (OpenGL)
find_package (SFML)
set(CMAKE_CXX_FLAGS "-g -Wall -pg")
add_executable (tractionedge ${source})
target_link_libraries(tractionedge ${SFML_LIBRARY} ${OPENGL_LIBRARY} ${OPENAL_LIBRARY})
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经将C++作为一种语言集中在一起,而不是通过坚持使用XCode来构建系统.我对Autotools(make?)和Gcc的了解非常有限.我如何让gcc只重新编译更改的源?