草庐IT

non-main

全部标签

c++ - 在 main() 之前或之后声明函数有什么区别?

有什么区别:voidfunction();intmain(){......}voidfunction(){......}对比voidfunction(){.......}intmain();当您可以在main之前声明和定义它时,在main之前声明一个函数然后在main之后定义它似乎很奇怪。是出于审美目的吗?我的老师编写的函数类似于第一个示例。 最佳答案 它只是为了代码组织的目的(我猜是“美学”)。如果没有前向声明,您需要在使用每个函数之前编写它,但出于组织目的,您可能希望以不同的顺序编写函数的主体。使用前向声明还允许您在最顶部的文件

c++ - 当类在 main() 中时,为什么这个 std::sort 谓词会失败?

这是一个非常简化的重现,它说明了classPredicate在main()之外如何工作,但是当确切的代码显示为内联时classInlinePredicate编译器无法匹配std::sort。奇怪的是,你可以将anything作为第三个参数传递给std::sort(比如,整数7),当它这样做时你只会得到一个编译错误不支持sort期望的operator()。但是当我在下面传递pred2时,它根本不匹配:#include#include#includeusingnamespacestd;classPredicate{public:booloperator()(constpair&a,cons

c++ - 如何摆脱这个错误 : "MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup"

我正在帮助一位friend学习C++,但老实说,我们需要很大的帮助。为什么我们总是得到这个错误:“MSVCRTD.lib(crtexe.obj):errorLNK2019:unresolvedexternal符号main在函数__tmainCRTStartup中引用”代码如下://MariaDelgado(1013725)-Coursework2-ProgramConductingtimbercomponentstructuraldesign#include#include#include#include#includeusingnamespacestd;//VariablesforS

c++ - 编译时错误 : Multiple definition of 'main'

我收到以下错误:`main'的多重定义我新建了一个项目,里面有两个c++文件:文件1#includeusingnamespacestd;intmain(){cout文件2#includeusingnamespacestd;intmain(){cout当我按下构建项目并运行时,出现错误。如何运行这些文件? 最佳答案 您不能在同一个项目中有两个主要功能。将它们放在单独的项目中或重命名其中一个函数并从另一个主要函数调用它。无论参数列表如何,您的项目中永远不能有多个main()函数,因为它是入口点。但是,只要参数列表不同(functiono

c++ - 为什么不能实例化带有 "non const"复制构造函数的对,而没有实例化一对是可能的?

假设您有以下类(class):structA{A(){}A(A&)=delete;};intmain(){std::pairp1;return0;}以下代码将无法编译(使用-std=c++11和g++)并出现以下错误:/usr/include/c++/5/bits/stl_pair.h:Ininstantiationof‘structstd::pair’:test.cpp:13:23:requiredfromhere/usr/include/c++/5/bits/stl_pair.h:127:17:error:‘constexprstd::pair::pair(conststd::pa

c++ - 错误 : invalid initialization of non-const reference of type ‘bool&’ from an rvalue of type ‘std::vector<bool>::reference {aka std::_Bit_reference}’

为什么我会收到错误:从类型为“std::vector::reference{akastd::_Bit_reference}”的右值对类型为“bool&”的非常量引用进行无效初始化?vector>vis;bool&visited(intx,inty){returnvis[x][y];//error}据我所知,vector中的operator[]返回引用,所以它应该是一个左值,但它不起作用。我应该怎么做才能让它发挥作用? 最佳答案 那是因为std::vector不是它看起来的样子。std::vector有一个特化与类型bool-它是空间

c++ - FXC : error X3501: 'main' : entrypoint not found

我正在阅读一本名为:Introductionto3DGameProgrammingwithDirectX11都是用VS2010写的。我想尝试使用VS2013...这是Windows桌面程序的示例项目我有一个包含以下内容的程序(包括一些其他常用文件):color.fx//***************************************************************************************//color.fxbyFrankLuna(C)2011AllRightsReserved.////Transformsandcolorsgeome

c++ - 是否可以在不编写复制构造函数的情况下在 main 中的构造函数之间进行选择?

真实的例子显然要长得多,但这总结了我的问题:classObject{intmInt1,mInt2;Object::Object();Object::Object(intparam1);Object::Object(intparam1,intparam2);};Object::Object(){}Object::Object(intparam1):mInt1(param1){}Object::Object(intparam1,intparam2):mInt1(param1),mInt1(param2){}然后在主要部分:if(type1){Objectinstance(param1);}

c++ - main前后的异常处理

是否可以在这些场景中处理异常:在进入main()之前从构造函数中抛出在离开main()后从析构函数中抛出 最佳答案 您可以使用内部的try-catch来包装您的构造函数。不,您应该绝不允许在析构函数中抛出异常。如何在构造函数中嵌入try-catch的有趣鲜为人知的特性:object::object(intparam)try:optional(initialization){//...}catch(...){//...}是的,这是有效的C++。这里的额外好处是try将捕获异常由类的数据成员的构造函数抛出,即使它们没有在ctor初始化程

C++ 将 'main' 声明为对函数的引用?

如果我将main定义为对函数的引用会怎样?#include#includeusingnamespacestd;intmain1(){cout会发生什么?我在在线编译器中测试时出现错误“Segmentationfault”:here并且在VC++2013下它会创建一个程序在运行时崩溃!将调用函数指针数据作为代码的代码将被编译,这将在启动时立即崩溃。我还想要一个关于此的ISOC++标准引用。如果您想根据像这样的宏定义2个入口点中的任何一个,这个概念将很有用:intmain1();intmain2();#ifdef_0_ENTRYint(&main)()=main1;#elseint(&ma