草庐IT

Main-Class

全部标签

c++ - 在 main() 消失之前初始化的值

无法理解奇怪的程序行为-希望有人能解释一下。虚拟.h:#ifndefDUMMY_H#defineDUMMY_H#includeclassDummy{intval;public:intInit(intnew_val){returnval=new_val;}intGet(){returnval;}Dummy():val(-1){std::cout标题.h:#include"dummy.h"externDummydummy;虚拟.cpp:#include"dummy.h"Dummydummy;主要.cpp:#include#include"header.h"intres1=dummy.Ini

C++ : Initializing base class constant static variable with different value in derived class?

我有一个带有常量静态变量a的基类A。我需要类B的实例对静态变量a具有不同的值。这怎么能实现,最好是静态初始化?classA{public:staticconstinta;};constintA::a=1;classB:publicA{//???//Howtoset*a*toavaluespecifictoinstancesofclassB?}; 最佳答案 你不能。所有派生类共享一个静态变量实例。 关于C++:Initializingbaseclassconstantstaticvaria

c++ - 可以单独编译任何 .c 文件(也就是说,没有 main?)

我目前有一个“类库”.c文件(如下所示)。我对此有2个问题:如果我想看看它自己是否编译良好,我该怎么做?如果我尝试对它进行gcc,它总是会给出“nomain”错误,这是有道理的,但会引发一个问题,即知道给定的.c文件是否可以“隔离”编译。我是否可以安全地得出结论,如果编译器引发的唯一错误是“nomain”错误,那么我的文件没有问题?在这里单独编译.c文件的一个例子是确定哪些包含过多。在这样一个简单的文件中是否有必要用它的方法/结构声明定义一个header,然后在这样一个很小的​​.c文件中包含代码实现?#ifndefSEMAFOROS#defineSEMAFOROS#include#i

c++ - CRT 如何调用 main ,具有不同的参数

我们可以用多种方式编写主函数,intmain()intmain(intargc,char*argv[])intmain(intargc,char*argv[],char*environment)运行时CRT函数如何知道应该调用哪个main。请注意,我不是在询问是否支持Unicode。 最佳答案 接受的答案不正确,CRT中没有特殊代码来识别main()声明的类型。它的工作是因为cdecl调用约定。它指定参数从右到左压入堆栈,调用者在调用后清理堆栈。因此CRT只是将所有参数传递给main()并在main()返回时再次弹出它们。您唯一需要

c++ - 在 C 和 C++ 中没有定义的函数 main

为什么这段代码在C中编译成功,而在C++中却报错?intmain;它在托管环境中是否符合标准?你能引用标准吗?我已经用gcc测试过了。 最佳答案 WhythiscodecompilesuccessfulinCandwillgiveyouanerrorinC++?由于C++名称修改。基本上,在所有实际实现中,链接器寻找名为main的symbol(或其变体,我在Apple平台上看到过_main)-在C中,它可以是main()函数或名为的外部存储变量main-关键是通常C实现(编译器、工具链)在链接器级别不区分变量和函数,这就是为什么提供

c++ - 继承 : expected class-name before ‘{’ token

我试图在C++中创建一个异常类,但它不起作用。我已将代码减少到最少,但仍然找不到错误。这是我的头文件:#ifndefLISTEXCEPTION_H#defineLISTEXCEPTION_H//C++standardlibraries#include/*CLASSDEFINITION*/classListException:publicexception{};#endif//LISTEXCEPTION_H这是我得到的错误:error:expectedclass-namebefore‘{’token这是出乎意料的。我该如何解决这个问题? 最佳答案

c++ - 错误 C2248 : 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'

我无法理解这个错误。这个错误不在我正在调试的类中。(是吗?)错误是:c:\programfiles\microsoftvisualstudio10.0\vc\include\fstream(890):errorC2248:'std::basic_ios::basic_ios':cannotaccessprivatememberdeclaredinclass'std::basic_ios'1>with1>[1>_Elem=char,1>_Traits=std::char_traits1>]1>c:\programfiles\microsoftvisualstudio10.0\vc\inc

c++ - 为什么 main() 必须返回一个 int?

这个问题在这里已经有了答案:Whatshouldmain()returninCandC++?(19个回答)关闭9年前。在大多数情况下,intmain()不会返回任何东西,它甚至不必返回任何东西,因为没有return不会给出错误。那么为什么main必须返回一个int呢?为什么voidmain不可能?编辑:我的意思是,如果通常没有return,为什么intmain()是标准?

c++ - C++ main() 的第三个环境变量参数有什么用?

我已经明白char**envp是main的第三个参数,借助下面的代码,我能够看到它是什么实际上包含。intmain(intargc,char*argv[],char*env[]){inti;for(i=0;env[i];i++)std::cout我的问题是:为什么(在什么情况下)程序员需要使用它?我找到了很多关于此参数的作用的解释,但没有任何内容可以告诉我该参数通常用于何处。试图了解这可能用于什么样的现实世界情况。 最佳答案 它是一个包含所有环境变量的数组。例如,它可用于获取当前登录用户的用户名或主目录。一种情况是,例如,如果我想在

c++ - 调用子覆盖时始终调用父类(super class)虚函数

我有这样的结构:classA{public:virtualvoidfunc(inta){cout现在,在95%的情况下,当我从A继承时,我会覆盖func,在100%的情况下,我应该在执行任何其他操作之前调用A::func();?我怎样才能防止手动编写这个。有时我什至忘记在子类中调用A::func();并得到运行时错误、抛出等。 最佳答案 NVIpattern怎么样??classA{public:voidfunc(inta){cout 关于c++-调用子覆盖时始终调用父类(supercla