草庐IT

c++ - 为什么我收到错误 : initializing argument 1 of 'Item::Item(int)' [-fpermissive] in Eclipse when I try to compile my C++ code?

我是C++的新手,在盯着它看了太久之后终于放弃了尝试编译它。编译器似乎出于某种原因拒绝了头文件中的构造函数原型(prototype)......我无法弄清楚它有什么问题。项目.h:#ifndefITEM_H_#defineITEM_H_classItem{public:Item(int);//ThislineiswhatEclipsekeepsflaggingupwiththeerrorinthetitlevirtual~Item();Item*getNextPtr();intgetValue();voidsetNextPtr(Item*);};#endif/*ITEM_H_*/在我的

c++ - 如何获取 QTreeWidget 的项目数

我创建了一个QTreeWidget,我试图列出所有显示的项目。如果项目有child但没有展开,我不想进入项目内部。它确实获得了我在树中可以看到的项目数。我试过了:for(inti=0;itopLevelItemCount();++i){QTreeWidgetItem*item=MyTreeWidget->topLevelItem(i);...但这只给了我topLevelItem,我想要所有我能看到的。在示例中,我应该能够数出14个项目 最佳答案 您可以编写一个递归函数来遍历层次结构并计算所有可见项。例如:inttreeCount(Q

c++ - 在 vim 中保留 C++ 注释中的缩进

是否可以将vim和cindent配置为在重新缩进文件(gg=G)时不改变c++注释中的缩进?我在注释中有一些格式化列表与4个空格对齐,但vim将其解释为错误缩进并重新对齐所有内容。例如:/**mylist:*item1*item2*/变成:/**mylist:*item1*item2*/我想要一种告诉vim的方法:“不要触摸注释内容,但缩进其他所有内容。”这很重要,因为我们的项目使用带有Markdown解析器的doxygen来生成文档,并且列表级别使用缩进。 最佳答案 这样写怎么样,这样评论中的缩进独立于评论缩进:/***mylis

c++ - 如何使用 Item Delegate 检测 QListView <-> QAbstractListModel 中的行选择?

我选择的QListView->QAbstractListModel似乎对内置选择支持为零。我必须从头开始编写所有内容吗?在UI中捕获选择事件,将模型项标记为已选中等?似乎没有开箱即用的支持。奇怪的是有一个QItemSelectionModel确实支持这个,但是你不能将它与QListView一起使用,因为它不是从QAbstract派生的......我的模型类是否应该使用多重继承来继承QItemSelectionModel和QAbstractListModel?否则我不知道如何才能避免自己重写这个功能。我的最终目标是让绘制我的项目的代理知道项目是否被选中,包括在paint和sizeHint

c++ - 使用 LLVM JIT 代码对程序进行编码以调用 C++ 代码

我的项目有一个C++库,我想允许用户通过某种编程语言使用它来进行JIT调用所述库中的函数。为了简单起见,假设库有如下类:classitem{public:item();item(int);~item();//...};classitem_iterator{public:virtual~item_iterator();virtualboolnext(item*result)=0;};classsingleton_iterator:publicitem_iterator{public:singleton_iterator(itemconst&i);//...};我知道LLVM对C++一无所

c++ - 在 QTreeView 中插入和删除行

美好的一天,我有从QAbstractItemModel继承的基本模型,以及一些不时通知此模型的后台线程,在示例中,插入行实现了这样的东西boolTreeModel::insertRows(intposition,introws,constQModelIndex&parent){TreeItem*parentItem=getItem(parent);boolsuccess;beginInsertRows(parent,position,position+rows-1);success=parentItem->insertChildren(position,rows,rootItem->c

c++ - 模板化放置新的和析构函数

为什么不能编译?templateclassPool{charBuff[sizeof(T)*256];public:Pool(){T*item=reinterpret_cast(&Buff[0]);for(inti=0;i(&Buff[0]);for(inti=0;i~T();}voidreset(unsignedinti){T*item=reinterpret_cast(&Buff[0]);item[i]->~T();item[i]->T();}}我显然想要实现的是在原始内存数组上调用placementnew(应该调用构造函数ok)。然后我想调用数组中项目的析构函数和构造函数。问题是I

c++ - 如何使用 ctypes 从 C++ 函数返回对象?

我有两个C++类,Container和Item,它们看起来像:classItem{public:Item(std::string*name,intid);std::string*getName();private:std::string*name;intid;};classContainer{public:Container();Item*getItem(intid);private:std::vectoritems;};我想在Python中创建和使用Container,所以我写了一个C接口(interface)来编译一个共享库:extern"C"{Container*Containe

c++ - 为什么将字符串放入结构中会导致崩溃?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我有一个结构,其中包含几个字符串。structitem{stringitem_name;intitem_property_1;doubleitem_property_2;}稍后我初始化它们:itemitem1;item1.item_name="NameofItem";item1.item_property_1=5;item1.item_property_

c++ - 模板对象可以改变它的类型吗?

我有以下类(class)templateclassItem{public:Titem;Item():item(T()){}Item(Targ){this->item=arg;}operatorT()const{returnitem;}};现在我想写一个赋值运算符,它也改变对象的类型。这可能吗?我用谷歌搜索了它,但没有得出任何相关结果(顺便说一句,这让我觉得我可能有点疯了)。为了清楚起见,假设我有以下2个对象:ItemintItem=3;ItemdoubleItem=3.4;我想写intItem=doubleItem;然后,我希望intItem的类型为Item.如果我只想要一个“经典的”