草庐IT

main-folder

全部标签

c++ - 为什么我们不将 C++ main 方法放在一个类中?

在C++中,为什么我们不将main方法放在类中(如Java)?为什么这样做没有意义(我认为)? 最佳答案 我们可以。main不是保留字。但是根据语言标准,C++工具链期望程序的入口点是全局范围内的main。因此类中的main不会被识别为程序的入口点。随意定义一个名为main的类方法,并从全局main调用它。这种设计完全来自C。与现有C代码的兼容性是C++早期的主要设计目标,更改入口点约定几乎没有任何实际好处。所以他们保留了C标准。正如每个人所说,C++与Java不同,它完全允许独立(即非类)函数。

c++ - C++ 中 Main 参数的 Const-Qualification

C++标准要求所有符合规范的实现都支持main的以下两个签名:intmain();intmain(int,char*[]);如果是后一种签名,添加(顶级)const是否会破坏任何语言规则?例如:intmain(constintargc,char**constargv);据我了解,顶级const限定不会影响函数的签名哈希,因此就规范而言它应该是合法的。此外,是否有人遇到过拒绝此类修改的实现? 最佳答案 这是一个knownissue在标准中。另见thisusenetdiscussion关于这个话题。

在 main 中可见的函数中声明的 C++ 结构

为什么这段代码有效?使用c++14//Exampleprogram#include#includeusingnamespacestd;autofun(){structa{intnum=10;a(){couta类型如何在main中可见?如果我将autox=更改为ax=它显然不会编译,但是main如何知道a类型?static声明在那里,因为我试图测试其他东西,但后来我偶然发现了这种行为。在这里运行:https://wandbox.org/permlink/rEZipLVpcZt7zm4j 最佳答案 在您意识到这一点之前,这一切都是令人惊

c# - 为什么c#中的main方法总是放在类中而不是c++中

为什么我们放main()方法总是在class内在C#中,而在C++中,它总是放在class之外. 最佳答案 C++语言的设计者效仿了C,因此main函数是一个普通函数。C#语言设计者在设计语言时做出选择,即所有方法都必须是类的一部分。 关于c#-为什么c#中的main方法总是放在类中而不是c++中,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9002790/

c++ - 应该避免带有尾随返回类型的 main 吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion在下面的代码示例中,main函数是使用C++11尾随返回类型表示法编写的:automain()->int{//...return0;}问题:是否有任何理由应该避免带有尾随返回类型的main而应该首选经典符号?

c++ - 没有返回类型的 main 的使用在 C++11 中被淘汰了吗?

StephenPrata在他的书C++PrimerPlus[p31]中说:ManyexistingprogramsusetheclassicCfunctionheaderinstead:main()//originalCstyleUnderclassicC,omittingthereturntypeisthesameassayingthatthefunctionistypeint.However,C++hasphasedoutthatusage.但是C++11草案3.6.1->2说Animplementationshallnotpredefinethemainfunction.This

c++ - 在 main 之前退出程序是否是明确定义的行为?

在调用main之前执行代码绝对是可能的,如thisquestion中的许多示例所示.但是,如果在主前代码中,程序被告知通过std::exit或std::abort退出怎么办?由于main被定义为程序的开始,那么在开始之前退出会有什么后果?在每个部分打印一些东西后,我得到以下结果:格式:部分:输出主要:主要Init(在main之前调用):init退出(在Init中用std::atexit设置):exiting样本运行:在不退出的情况下调用Init:initmainreturns0初始化调用std::exit(0):initreturns0Init调用std::abort:initcras

c++ - main() 函数中的 try\catch block 没有括号

VisualStudio2015;C++语言。我记得我在某处读到有关入口点(即main方法)的内容,可以这样写:#includeusingnamespacestd;intmain()try{return0;//Iamhere...}catch(...){cout即在这种情况下,try\catchblock不在括号中:intmain(){//startbrackettry{return0;}catch(...){return1;}}//endbracket这两种情况都已成功编译并且也可以正常工作,但是......在第一个变体中,当我在tryblock之后逐步按下F10键时,我也进入cat

maven - 使用 maven 时,Kotlin 未从 src/main/kotlin 编译

kotlin编译器似乎只尝试编译src/main/java中的.kt文件,而忽略了src/main/kotlin。但是,一切似乎都在IntelliJIDE中正确链接。没有错误。以下是我对kotlin的插件配置:kotlin-maven-pluginorg.jetbrains.kotlin${kotlin.version}compilecompile${project.basedir}/src/main/kotlin${project.basedir}/src/main/javatest-compiletest-compile${project.basedir}/src/test/kot

maven - 使用 maven 时,Kotlin 未从 src/main/kotlin 编译

kotlin编译器似乎只尝试编译src/main/java中的.kt文件,而忽略了src/main/kotlin。但是,一切似乎都在IntelliJIDE中正确链接。没有错误。以下是我对kotlin的插件配置:kotlin-maven-pluginorg.jetbrains.kotlin${kotlin.version}compilecompile${project.basedir}/src/main/kotlin${project.basedir}/src/main/javatest-compiletest-compile${project.basedir}/src/test/kot