草庐IT

RedPanda-CPP

全部标签

在 header 中声明的c++私有(private)成员与在cpp文件中声明的静态变量

我有一个变量,我更喜欢在cpp文件而不是头文件中声明。它应该只能被该类的对象访问。该变量应该为该类的每个对象都有一个单独的拷贝。继承不是必须的。通常,我会在类定义中声明它。嗯:classA{private:intnumber;}但是,我可以这样做吗?B.h:classB{private://nothing}B.cpp:staticintnumber; 最佳答案 不,如果您采用第二种方法,您会将其设为静态变量,这意味着您不会为该类的每个对象拥有不同的拷贝(它们将共享该变量)。无论哪种方式,如果它只应该被那个类访问,它应该放在类声明中,

c++ - 我可以在我的 cmake 代码中手动使用 CMake 的 cpp 文件依赖扫描器吗?

我正在尝试使用CMake添加一个自定义目标,它为每个给定的.cpp文件执行一个命令。仅当源文件本身或包含的源文件之一发生更改时,才应重新执行该命令。据我所知,要实现这一点,我需要一个所有包含文件的列表,并将它们添加到属于我的自定义目标的add_custom_command()调用的DEPENDS选项中。那么有没有内置的方法来获取包含文件的列表?我知道add_custom_command()函数的IMPLICIT_DEPENDS选项,但它只适用于Makefile生成器。我想让它适用于所有生成器。谢谢你的时间编辑:根据要求,我将发布一些cmake代码来展示我想要实现的目标。我想添加一个自定

c++ - 更改 .cpp 文件导致 Visual Studio 2012 重新编译不相关的文件

想知道是否有人知道如何解决这个问题;我有一个特定的.cpp文件,出于某种原因,每当我修改它(甚至只是添加一个空白字符)并构建项目时,都会导致重新编译许多其他不相关的.cpp文件(其中10-20个)。那个文件没有#include'在任何其他文件中(我从来没有直接#include.cpp文件,只有.h)并且没有我能想到的其他依赖项-在我看来,VisualStudio是误解依赖树,或者有一些与其构建过程相关的损坏的内部状态。我试过删除.sdf,.suo,ipch/,.user,和object文件目录,但不久后问题又出现了。如预期的那样,修改任何其他.cpp文件只会导致重新编译该文件。我对MS

c++ - 如何防止 yaml-cpp 解析器删除所有注释?

我有一个项目需要读取一个记录良好的yaml文件,修改几个值,然后将其写回。问题在于yaml-cpp完全去除所有注释并“吃掉”它们。有趣的是,YAML::Emitter类允许向输出添加注释。有没有办法保留输入中的注释并将它们写回到我看不到的库中?因为就目前而言,我看不到任何使用YAML::Parser类的方式(它使用YAML::Scanner类,其中注释本身是实际上是“吃掉了”)。 最佳答案 根据YAMLspecCommentsareapresentationdetailandmustnothaveanyeffectontheseri

c++ - 什么是 __aeabi_unwind_cpp_pr1' 以及如何避免它?

我有一堆arm程序集、C和C++文件。gcc正在尝试链接它们,但这些是针对嵌入式项目的。我没有使用任何外部库,所有使用的代码都是我编写的。似乎发生了一个错误,因为我在main.c中定义了一个名为intkernel_main(void)的函数,它试图调用set_LED(intvalue)在mailbox.cpp中定义,其中包含headermailbox.h(我确实在main.c文件中包含header)。准确的错误是:undefinedreferenceto`__aeabi_unwind_cpp_pr1'我制作项目的方式是:-在不链接(-c)的情况下将所有源文件(.s、.c、.cpp)编译

c++ - VS2010插件cpp/h自动标签组

是否有任何VisualStudio2010插件可以自动将cpp和头文件分组在不同的选项卡组中,并且还可能在打开某个文件时自动打开/关闭相应的cpp/头文件? 最佳答案 这个插件看起来提供了您想要的第一个功能,但我不知道它是否适用于h/cpp文件:http://visualstudiogallery.msdn.microsoft.com/EBF6137E-AA2D-4DC9-860A-F04168F11CD7.关于第二个,我不确定你是否真的一直想做。我认为大多数时候这实际上很烦人,因为您最终会关闭不需要查看的文件。

c++ - 获取 OpenCV 错误 : Insufficient memory while running OpenCV Sample Program: "stitching_detailed.cpp"

我最近开始使用OpenCV,目的是将大量图像拼接在一起以创建大型全景图。为了开始我的实验,我查看了OpenCV文件附带的示例程序,以了解如何实现OpenCV库。因为我对图像拼接很感兴趣,所以我直接找到了“stitching_detailed.cpp”。代码可以在以下位置找到:https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/stitching_detailed.cpp?rev=6856现在,这个程序完成了我需要它完成的大部分工作,但我遇到了一些有趣的事情。我发现对于15个可选投影变形器中的9个,我在尝试运

c++ - Cpp 预处理器和文件名的基本名称,行号作为字符串

我想用预处理器生成"example.cpp:34"形式的静态字符串,但是__FILE__宏将扩展为“lib/example/example.cpp”和__LINE__扩展为34作为整数。我可以用预处理器构造所需的字符串吗?GCC扩展没问题。编辑这里最重要的部分是我想要一个静态的C风格字符串,所以我不能使用basename函数。我想知道预处理器中是否有某种方法可以复制该功能,可能带有增强扩展? 最佳答案 您可以利用相邻字符串文字被连接这一事实:#defineSTRINGIFY(s)#s#defineFILELINE(line)__FI

c++ - 在 cv::imshow() 中出现错误 - 断言:文件 qasciikey.cpp 中的 "false",第 501 行

每当我调用cv::waitKey()时都会收到此错误:ASSERT:"false"infileqasciikey.cpp,line501我不确定为什么会收到此错误。我在通过Windows上的MobaXterm连接的UbuntuServer14.04EC2实例上运行。如果我在普通的ubuntu机器上运行所有相同的代码,一切都很好。这是发生这种情况的行:charkey=cvWaitKey(33); 最佳答案 MobaXterm中的解决方法是取消选中X11设置中的“Unix兼容键盘”。 关于c

c++ - 自定义caffe windows cpp中的卷积层

我有这个网络'RGB2GRAY.prototxt':name:"RGB2GRAY"layer{name:"data"type:"Input"top:"data"input_param{shape:{dim:1dim:3dim:512dim:512}}}layer{name:"conv1"bottom:"data"top:"conv1"type:"Convolution"convolution_param{num_output:1kernel_size:1pad:0stride:1bias_term:falseweight_filler{type:"constant"value:1}}}