草庐IT

c++ - 如何基于XML代码构造对象?

我有代表部分HTML代码的XML文件。这些XML文件也有小部件声明。示例XML文件:innertexthere,setsanotherattributeorinsertsanotherwidgettothetreeifneeded...我有一个主要的Widget类,我的所有小部件都继承自它。问题是我将如何创建它?这是我的选择:创建一个编译时工具来解析XML文件并创建必要的代码以将小部件绑定(bind)到所需的对象。优势:不会给系统带来额外的运行时开销。绑定(bind)setter很容易。缺点:向构建链添加另一个步骤。难以维护,因为系统中的每个小部件都应添加到解析器中。使用宏来绑定(bi

c++ - 使用自动构建系统进行版本控制

我们最近转向了一个自动构建系统(内部的东西,还不是Hudson或Teamcity)。我们的版本存储在头文件中,并包含在一些cpp和资源文件中。它也被安装程序使用。它的格式是A.B.C.D其中:A多年未变。B很少更改(主要版本)。C随次要版本发生变化。当新的次要版本(错误修复)交付给QA时,D会发生变化。到目前为止,负责构建新版本的人在开始构建之前手动递增C/D(D更常见),然后checkin更改,然后开始构建。在那个人成功构建应用程序之前,版本保持不变。自然地,随着转向自动构建系统,我想摆脱更改版本号的手动步骤。应该如何处理?无论是QA构建还是内部测试构建(即我正在研究某些功能,我想测

C++:我应该使用全局变量还是类成员指针在模块之间进行通信?

在我的项目中,我将多个子系统组织为类。我需要这些类进行通信(以便能够通过指针访问另一个类),并且我希望以尽可能最好的方式实现它。我在这里基本上看到了三种可能的解决方案:如果子系统X需要访问子系统Y,则向类X添加一个成员变量,指向Y的一个实例。创建X时,将指向Y的指针传递给它,并让成员变量m_pSystemY设置。为每个子系统声明一个全局变量CSystemX*g_SystemX。它将在程序启动时填充指向新创建的子系统实例的指针。以后,您可以从任何地方轻松访问它。创建一个复杂的子系统管理器类。所有子系统都存储在一个数组中。您需要调用一个函数才能访问特定的子系统。我的问题:我应该为我的游戏引

c++ - 使用 log4cxx 进行日志记录和过滤

我正在开发需要日志记录和过滤功能的应用程序。我正在使用C++。我开始了解log4cxx支持日志记录。我在过滤时遇到困难。我有五个字段MACID日期和时间命令类型状态短信我需要将这5个字段存储在日志文件中,并根据以下过滤选项对其进行过滤。日志记录和过滤将在运行时自行完成。一旦文件大小达到10MiB,它将从头开始重写文件。过滤选项1.MACID2.日期和时间过滤可以通过过滤其中一个或两个来完成。结果应返回日志文件中的所有字段。是否可以使用log4CXX在日志文件中存储多个字段?如何根据上述条件过滤信息?我是否需要编写自己的过滤器类并继承现有的过滤器类?我是否需要编写自定义记录器类来在日志文

c++ - OpenCV 2.3 和 Visual Studio 2010

我在使用visualstudio2010安装openCV2.3时遇到了很多麻烦。崩溃后崩溃,安装后安装,几周后我没有运气。不幸的是,openCV2.3没有安装文档,目录结构和文件位置与openCV2.2不同,这使得当前的教程几乎毫无用处。:(有没有人在openCV2.3上取得过成功?有人可以试试吗,如果是openCV构建问题或我的设置问题,请告诉我?或者也许有人可以建议openCV的替代方案。我的最终目标是获取像素信息、使用修复功能以及AfterEffects和Maya的基本图像处理。编辑:对不起,我以为我犯了错误!这是我运行代码时发生的情况:#include#include#incl

c++ - 编译器什么时候为类的特殊成员提供定义?

我知道当我定义一个空类并且根本不提供任何声明时,编译器将为默认和复制构造函数、析构函数以及复制赋值运算符提供定义。规则是什么?编译器什么时候不提供复制构造函数?移动构造函数和移动赋值运算符呢?(示例:如果我的类有像int&这样的引用成员,编译器将不会为任何赋值运算符提供定义。否则什么时候会发生这样的事情?) 最佳答案 编辑:在C++11中,它比是否隐式声明更复杂。它们可以隐式声明和默认、隐式声明和删除或未声明。阅读this区分后者2.以下信息并不完全正确,因为它没有区分已声明和已删除与未声明。以下是正在进行的工作。(?)表示我想澄清

c++ - C++语言律师白话词典

在C++中,有些术语在大多数C++书籍中都没有提及或解释。例如:单数迭代器(link)限定名称(link)家属姓名推断的上下文阴影x/gl/pr-值(link)不完整类型(link)如果您不知道编译器错误消息的含义,您将无法理解它们。我知道以上所有术语的含义(它们只是示例)。经过一些不平凡的谷歌搜索后,我当然可以弄清楚术语的含义。对于单数迭代器,我不得不查看gcc源代码。是否有字典或其他东西以不像标准中那样以不太专业友好的方式解释和定义这些内容? 最佳答案 在这里,我们有theofficialC++11finalworkingdra

c++ - 感兴趣区域的唯一性和身份

我目前正在使用OpenCV开发计算机视觉应用程序。该应用涉及目标识别和特征确定。通常,我会让一个目标进入可见区域并在几秒钟内慢慢穿过它。这应该让我从相机中获得超过50-60帧,我可以在其中找到目标。我们已经成功地使用SWT和OCR实现了检测算法(目标都有字母数字标识符,这使得它们相对容易被识别)。我想要做的是使用每个目标的所有50-60次射击中尽可能多的数据。为此,我需要一些方法来识别图像2的特定ROI包含与图像1中的另一个ROI相同的目标。我想征求以前可能遇到过此问题的任何人的一些建议。我如何在合理的误差范围内轻松/快速地识别ROI#2与ROI#1具有相同的目标?我的第一直觉是这样的

c++ - 在 Amazon EC2 上安装测试应用程序

我想使用AWS产品在其上构建一些应用程序。现在,我想测试一下-1)创建一个托管在AWS上的网页,其中包含一个简单的文本框和一个提交按钮,用于检查数字是否为素数。2)在EC2上编译一个C++程序来接受一个数字,如果它是质数则回复。有人可以列出执行此操作所涉及的步骤吗?(上面的例子简单地反射(reflect)了我心目中的实际应用程序,有一个http前端和一个c++后端) 最佳答案 如果您使用默认的LinuxAMI,您将提供一个标准的Apache安装准备就绪。听起来您的应用程序的调用方式是请求-响应,所以至少开始时,您可以只使用CGI让A

c++ - 生成用于大规模重构/重命名的 C++ 符号列表

背景我继承了一个遗留的60klocg++项目,我想重构它以在整个项目中强制执行一致的命名约定。问题是否有免费/开源的静态分析工具可以生成以下列表:全局符号类名成员方法(公共(public)/protected/私有(private),如果可能)成员变量静态方法本地符号(可能会忽略这些)我可能遗漏的任何其他符号,但可能会影响代码的阅读者方法我的意图是使用vim来编辑生成的符号列表,然后使用Ruby脚本对符号进行非常粗略的搜索和替换/映射,这样至少命名约定是一致的。这个过程有点难看,我预计初始编译会失败,但如果我能有一组更具可读性的代码,我不介意手动解决问题。大型C++代码库的开发人员使用