草庐IT

main_background

全部标签

c++ - 在 C++ 中,编写在 main() 之前执行的代码是一种好的形式吗?

在进入main之前调用全局声明类的构造函数。虽然这可能会让代码的新读者感到困惑,因为它很少这样做,但这一定是个坏主意吗? 最佳答案 这不一定是个坏主意,但通常是。首先,它是全局数据,而全局通常是一件坏事。您拥有的全局状态越多,就越难推理您的程序。其次,C++不保证在不同翻译单元(.cpp文件)中定义的静态对象的初始化顺序——因此如果它们相互依赖,您可能会有麻烦。 关于c++-在C++中,编写在main()之前执行的代码是一种好的形式吗?,我们在StackOverflow上找到一个类似的问

c++ - 为什么在 C++ 中不允许递归 main() 调用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:restrictionsonthemain()functionIsitlegaltorecurseintomain()inC++?我在C++Primer上看到main是不允许递归调用的,在SO上的一些相关问题中也确实证实了它是非法的。但为什么它是非法的?只要避免堆栈溢出,在自身内部调用main有什么问题?

c++ - 在进入 main 函数之前,你能用 C++ 打印任何东西吗?

在进入main函数之前,你能用C++打印任何东西吗?彭博社的面试题:回答:创建一个全局变量,从带有一些内容的printf语句中赋值。 最佳答案 #includestructX{X(){std::cout这个格式良好的C++程序打印Hellobeforemain()您知道,C++标准保证命名空间范围变量(在本例中为x)的构造函数将在main()之前执行。因此,如果您在此类对象的构造函数中打印某些内容,它将在main()之前打印。QED 关于c++-在进入main函数之前,你能用C++打印任

c++ - CMake发现不止一个main函数

我正在尝试编译一个只有一个main函数的项目,但是CMake找到了更多。我的CMakeLists.txt是这样的:cmake_minimum_required(VERSION2.8)project(my_proj)include_directories(".")add_subdirectory(main)add_subdirectory(resources)find_package(OpenCVREQUIRED)find_package(BoostREQUIREDCOMPONENTSsystemregexprogram_options)include_directories(${Boo

c++ - "return (0);"函数中的 'main' 语句中的括号 0 - 它们的作用是什么?

这个问题在这里已经有了答案:Whendoextraparentheseshaveaneffect,otherthanonoperatorprecedence?(2个答案)关闭3年前。通常自动生成的c++"main"函数在最后return(0);或return(EXIT_SUCCESS);但是为什么上面的语句中有括号呢?是不是跟C语言什么的有关?//编辑我知道这是正确的,但有人把这些括号放在了一起是有原因的。这是什么原因?!

c++ - Qt : Background thread refreshing UI thread

我有一个后台线程,该线程会调用一些更新UI的方法(以便显示进度条并在文本区域显示其他信息)。如果我修改某些UI小部件值,则会引发“无法将事件发送到不同线程拥有的对象”断言错误。在论坛上,我读到我可以使用QMetaObject::invokeMethod方法,但如果我将Qt::DirectConnection标志传递给它,它就会起作用,这实际上引发了上面显示的相同错误。如果我使用Qt::QueuedConnection或Qt::AutoConnection,invokeMethod返回false。我的代码看起来类似于:.h:classA:publicQMainWindow{Q_OBJEC

c++ - int main(void) 在 C++ 中有效吗?

C++标准列出了main允许的形式。它没有将intmain(void)列为允许的形式。但是,它通常指出Theparameterlist(void)isequivalenttotheemptyparameterlistintmain(void)是一种允许的形式吗? 最佳答案 来自N3936标准草案:3.6Startandtermination3.6.1Mainfunction2Animplementationshallnotpredefinethemainfunction.Thisfunctionshallnotbeoverloade

c++ - 将具有默认值的数组作为参数传递给 int main()

我很难将数组作为参数传递给具有默认值的intmain()。例如:intmain(inta){}效果很好。同样intmain(inta=1){}传递intmain()一个数组也能很好地工作:intmain(inta[3])但是,将这两个概念结合起来似乎是错误的:intmain(inta[1]={0,1})经过大量的googleing,我还没有找到解决方案。请帮助我吧,你是我唯一的希望!编辑这样做的目的,简而言之,是让我的代码尽可能少行,以应对我的教授最近发布的挑战(不是为了加分-只是为了学习)。作业是创建一个递归的“圣诞节12天”程序这是我当前的程序#include#includevoi

c++ - 在项目中使用 QT 单元测试 - 冲突的 main(...) 函数

我踏上了使用单元测试开发我的应用程序的崇高道路,但事实证明这是一条陡峭而崎岖的道路。我正在用Qt开发一个应用程序,因此想到了他们的QTestLib框架。现在,我了解了如何进行单元测试,但我似乎无法弄清楚如何将单元测试合并到项目中。假设我有一个控制台应用程序,它只有一个main.cpp以及一个cpp和h文件,用于我想开发的类,比如MyClass。我想正确的做法是创建一个相应的测试类MyClassTest及其h和cpp文件。但是我应该把它放在同一个项目中吗?或者更确切地说,为单元测试创​​建一个单独的项目,该项目将可以访问“主”项目中的文件(不确定我该怎么做)?如果主应用程序和测试都在同一

c++ - `int main(int argc, char* argv<::>)` 如何成为 main 的有效签名?

这个问题在这里已经有了答案:Howisthisbracketless/bracelesscodevalid?[duplicate](4个答案)关闭7年前。我在网站上看到intmain(intargc,char*argv)也可以用作main的签名.令人惊讶的是,以下程序:intmain(intargc,char*argv){return0;}编译时会发出GCC中的任何警告以及clang。它还在C++中编译。那么,intmain(intargc,char*argv)是怎么回事?是main的有效签名?