草庐IT

not_matched

全部标签

c++ - 语句 "a class is an object even if not instantiated"是什么意思?

我是一名学习Ruby的C++程序员。在一本初学者书中,我读到:“一个类本身就是一个对象,即使您不直接实例化它也是如此。”我不知道怎么解释。 最佳答案 在C++中,除了typeid等,类没有语言可见的运行时表示。你可以说classFoo{};,但你不能说&Foo。(您可以获取typeinfo对象的typeid/地址,它是类对象的SCSS版本)。在Ruby中,类是对象。任何你能用一个对象做的事情,你都可以用一个类来做,因为它是一个对象。例如,在Ruby中,您可以foo.send(...)到任何对象foo。由于类是一个对象,因此您也可以使

c++ - 添加虚拟删除错误 : type 'base' is not a direct base of derived class

考虑以下示例代码:#includeusingnamespacestd;classbase{public:base(){cout这给出了错误:error:type`base'isnotadirectbaseof`derived2'为什么会出现这个错误?如果我将基类设为虚拟,则错误不再存在。这是什么原因? 最佳答案 因为base不是derived2的直接基类。您必须为您的直接基础提供构造函数,在本例中为derived1。虚拟基地除外。它们总是在叶类中初始化,否则您可能会为同一个基类调用多个构造函数。因此,如果您使base成为虚拟的,您不

c++ - std::map.insert "could not deduce template argument for..."

我正在尝试熟悉STL库,但我无法理解我的编译错误。我使用编译器错误字符串“无法推断...的模板参数”搜索了其他问题,但没有一个答案似乎适用或相关。Error4errorC2784:'boolstd::operator&,conststd::unique_ptr&)':couldnotdeducetemplateargumentfor'conststd::unique_ptr&'from'conststd::string'c:\programfiles(x86)\microsoftvisualstudio10.0\vc\include\xfunctional125我正在编写一个简单的解释

c++ - 从 C++ 调用 NSLog : "Format string is not a string literal (potentially insecure)"

当我从C++调用NSLog时,Xcode提示传递给NSLog的格式字符串不是文字字符串。这是触发警告的一行代码:NSLog(CFSTR("Leaking?"));我不知道有什么方法可以在C++中编写NSString文字,而且我没有看到可以在项目设置中关闭的相关警告。有没有办法在不触发此消息的情况下从C++调用NSLog?我正在使用Xcode4.2.1。编辑:这确实是C++代码。我通常避免使用Objective-C++,坚持使用Objective-C或普通的旧C++,因为没有官方文档说明什么在Objective-C++中有效,什么无效。我只发现模糊的警告(例如)STL的某些部分可能存在问

c++ - 错误 "' fdopen' was not declared"found with g++ 4 that compiled with g++3

我的代码可以用g++版本3.something愉快地编译。然后我想构建一些其他代码,其中包含C++11符号,所以我升级到g++4.7。现在我的原始代码无法构建。我收到错误:'fdopen'未在此范围内声明根据手册页,fdopen()在我包含的stdio.h中声明。我不确定它是否相关,但我在Cygwin环境中工作。我使用的g++的确切版本是Cygwin提供的版本4.7.2。自从我切换编译器后,我没有更改此代码,我可以肯定地确认它已构建并且我的测试代码运行并通过了以前的编译器。根据要求,演示问题的示例代码:#include#include#include#includeintmain(in

c++ - C++ : why does free not accept a const void*, 中的 malloc/free 有更好的方法吗?

这个问题在这里已经有了答案:UnabletofreeconstpointersinC(12个答案)关闭8年前。将C++11代码连接到某些C回调,我必须传递constchar*const*,即字符串数组。这是我的代码的简化版本:intmain(int,char**){constintcnt=10;constchar*const*names=static_cast(malloc(sizeof(char*)*cnt));//...allocatingnames[0],etc.comingsoon...the_c_function(names);free(names);return0;}所以我

c++ - 奇怪的异常抛出 - 分配 : Operation not permitted

我想从cin进行异步读取,因此我有一段代码客户端.h...boost::asio::posix::stream_descriptorinput;boost::asio::streambufinput_buffer客户端.cppClient::Client(intargc,char**argv,boost::asio::io_service&io_service):tcp_socket(io_service),udp_socket(io_service),input(io_service,::dup(STDIN_FILENO)){...read_std_input();}voidClie

python ‘float‘object is not iterable

目录Python'float'objectisnotiterable错误背景错误示例错误解决方法结论应用场景错误解决方法介绍迭代(Iteration)迭代的工作方式迭代可迭代对象迭代其他数据结构自定义可迭代对象Python'float'objectisnotiterable在Python中,​​'float'objectisnotiterable​​是一个常见的错误消息。它在迭代(iteration)过程中表示发生了错误,因为我们试图对浮点数进行迭代操作,但是浮点数是不可迭代的。错误背景在Python中,可迭代对象(iterable)是一种能够被遍历(iterating)的数据类型,例如列表(

c++ - 如何到 "pattern match"一个模板?

通常在模板中你想知道整个类型,但在我的例子中我需要知道更多,并且想“分解”类型。举个例子:template>Tget_front(Collectionconst&c){returnc.front();}我怎样才能做到这一点?注意:我需要它来自动推断类型,而不是传递类似,int>的东西 最佳答案 编辑:最后可以找到C++0x方式。编辑2:我很愚蠢,在答案的末尾可以找到比所有这些特征内容更短的C++98/03方法。p>如果你想让你的函数适用于任意标准库容器,你需要拿出一些模板枪。问题是,不同的容器采用不同数量的模板参数。std::vec

c++ - double not (!!) 用于非 boolean 变量有什么作用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoubleNegationinC++code.我正在处理生产代码,我在其中遇到过几次这样的语句:Class.func(!!notABool);前几次我认为它是程序员的怪癖(也许是为了强调它是一个条件语句而不是传递给func的数字?)但我遇到过几个语句使用上面的内容,现在我想知道它是否真的有所作为。在大多数情况下,notABool是一个数字(int、float、double...我已经看到了所有3个)我最初的猜测是它类似于打字:Class.func((bool)notABool);但我不完全确定?