草庐IT

CPP-SCNUOJ-Problem

全部标签

c++ - .cpp 文件中的虚拟 C++ 方法实现是否应该标记为虚拟?

我有一个在.h文件中定义并在.cc文件中实现的虚拟C++方法。应该将.cc文件中的实现标记为虚拟,还是仅标记.h文件中的声明?例如,我的标题有:virtualstd::stringtoString()const;方法在我的.cc中实现:std::stringMyObject::toString()const{[implementationcode]}应该将实现标记为虚拟,还是上面的代码可以?有关系吗? 最佳答案 C++标准n3337§7.1.2/5说:Thevirtualspecifiershallbeusedonlyinthein

c++ - .cpp 文件中的虚拟 C++ 方法实现是否应该标记为虚拟?

我有一个在.h文件中定义并在.cc文件中实现的虚拟C++方法。应该将.cc文件中的实现标记为虚拟,还是仅标记.h文件中的声明?例如,我的标题有:virtualstd::stringtoString()const;方法在我的.cc中实现:std::stringMyObject::toString()const{[implementationcode]}应该将实现标记为虚拟,还是上面的代码可以?有关系吗? 最佳答案 C++标准n3337§7.1.2/5说:Thevirtualspecifiershallbeusedonlyinthein

c++ - 使用 C++ 模块时,是否有任何理由将函数声明(.hpp 文件)与其定义(.cpp 文件)分开?

我习惯于编写没有模块的代码,其中头文件包含函数声明,例如://foo.hclassFoo{voidbar();};并且对应的.cpp文件包含定义://foo.cpp#include"foo.h"voidFoo::bar(){//...}据我所知,这是对decreasecompiletimeandreducedependencies进行的。.当modules将被使用,这仍然适用吗?将类与Java和C#的定义方式放在一个文件中是否一样快?如果是这种情况,在使用模块时是否需要.hpp和.cpp文件? 最佳答案 我知道的唯一原因,asthe

c++ - 使用 C++ 模块时,是否有任何理由将函数声明(.hpp 文件)与其定义(.cpp 文件)分开?

我习惯于编写没有模块的代码,其中头文件包含函数声明,例如://foo.hclassFoo{voidbar();};并且对应的.cpp文件包含定义://foo.cpp#include"foo.h"voidFoo::bar(){//...}据我所知,这是对decreasecompiletimeandreducedependencies进行的。.当modules将被使用,这仍然适用吗?将类与Java和C#的定义方式放在一个文件中是否一样快?如果是这种情况,在使用模块时是否需要.hpp和.cpp文件? 最佳答案 我知道的唯一原因,asthe

c++ - 包括 .cpp 文件?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whycantemplatesonlybeimplementedintheheaderfile?我最近一直在尝试使用C++。目前我正在尝试编写一些我确信每个人都至少做过一次的事情:一个简单的LinkedList类。代码已完成,但我不知何故无法编译它。我一直在谷歌搜索,似乎我将目标文件链接错了。我的代码基本上是这样的:test.cpp#include"linkedlist.h"intmain(){LinkedListlist;//dosomething}链表.htemplateclassLinkedList{/

c++ - 包括 .cpp 文件?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whycantemplatesonlybeimplementedintheheaderfile?我最近一直在尝试使用C++。目前我正在尝试编写一些我确信每个人都至少做过一次的事情:一个简单的LinkedList类。代码已完成,但我不知何故无法编译它。我一直在谷歌搜索,似乎我将目标文件链接错了。我的代码基本上是这样的:test.cpp#include"linkedlist.h"intmain(){LinkedListlist;//dosomething}链表.htemplateclassLinkedList{/

c++ - _Bool 和 bool : How do I solve the problem of a C library that uses _Bool?

我用C语言编写了一组数据结构和函数,其中一些使用_Bool数据类型。当我开始时,项目将是纯C。现在我正在研究使用基于C++的GUI工具包,并将后端代码制作成库。但是,在编译C++GUI时,编译器会发出以下错误:ISOC++禁止声明没有类型的“_Bool”我最初认为我可以搜索并将_Bool替换为bool并创建:/*mybool.h*/#ifndefMYBOOL_H#defineMYBOOL_Htypedef_Boolbool;#endif/*MYBOOL_H*/然后在任何使用_Bool的header中#ifdef__cplusplusextern"C"{#else#include"myb

c++ - _Bool 和 bool : How do I solve the problem of a C library that uses _Bool?

我用C语言编写了一组数据结构和函数,其中一些使用_Bool数据类型。当我开始时,项目将是纯C。现在我正在研究使用基于C++的GUI工具包,并将后端代码制作成库。但是,在编译C++GUI时,编译器会发出以下错误:ISOC++禁止声明没有类型的“_Bool”我最初认为我可以搜索并将_Bool替换为bool并创建:/*mybool.h*/#ifndefMYBOOL_H#defineMYBOOL_Htypedef_Boolbool;#endif/*MYBOOL_H*/然后在任何使用_Bool的header中#ifdef__cplusplusextern"C"{#else#include"myb

c++ - 什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件

据我了解,stdafx.h是一个预编译的头文件,用于缩短VisualStudio中的编译时间。当我在VisualStudio2012中创建一个c++项目时,还有一个stdafx.cpp。谁能解释一下stdafx.h和stdafx.cpp的关系? 最佳答案 预编译的头文件可以大大加快项目中.cpp文件的编译速度。按照惯例,stdafx.h#include包含您要预编译的所有.h文件。您可以随意命名,但项目模板只选择stdafx.h但在此之前,必须有一个.cpp文件#includesstdafx.h并首先编译。在项目中的所有其他.cpp

c++ - 什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件

据我了解,stdafx.h是一个预编译的头文件,用于缩短VisualStudio中的编译时间。当我在VisualStudio2012中创建一个c++项目时,还有一个stdafx.cpp。谁能解释一下stdafx.h和stdafx.cpp的关系? 最佳答案 预编译的头文件可以大大加快项目中.cpp文件的编译速度。按照惯例,stdafx.h#include包含您要预编译的所有.h文件。您可以随意命名,但项目模板只选择stdafx.h但在此之前,必须有一个.cpp文件#includesstdafx.h并首先编译。在项目中的所有其他.cpp