草庐IT

weak_intrusive_pointer

全部标签

C++。错误 : void is not a pointer-to-object type

我有一个C++程序:structarguments{inta,b,c;arguments():a(3),b(6),c(9){}};classtest_class{public:void*member_func(void*args){argumentsvars=(arguments*)(*args);//error:voidisnota//pointer-to-objecttypestd::cout编译时会报错:error:‘void*’isnotapointer-to-objecttype有人可以解释我做错了什么来产生这个错误吗? 最佳答案

c# - “C++ void Pointer”和 “C# var”之间的区别

在学习C#时,我想到了这个问题。void和var有什么区别?这是我要分享的两个示例:void*voidInt=(void*)7;void*voidChar=(void*)'F';void*voidCharArray=(void*)"AbcString";这是var的示例:varvarInt=7;varvarChar='F';varvarCharArray="AbcString";void是匿名数据类型吗?如果是,那么主要是什么var和void之间的区别?有人可以帮我解决这种情况吗? 最佳答案 这里的其他答案还不错,但我认为它们并不清

c# - “C++ void Pointer”和 “C# var”之间的区别

在学习C#时,我想到了这个问题。void和var有什么区别?这是我要分享的两个示例:void*voidInt=(void*)7;void*voidChar=(void*)'F';void*voidCharArray=(void*)"AbcString";这是var的示例:varvarInt=7;varvarChar='F';varvarCharArray="AbcString";void是匿名数据类型吗?如果是,那么主要是什么var和void之间的区别?有人可以帮我解决这种情况吗? 最佳答案 这里的其他答案还不错,但我认为它们并不清

c++ - 与智能指针(intrusive_ptr)一起使用的抽象基类-处理继承,多态性,可克隆性以及从工厂方法返回

要求我正在编写一个名为RCObject的类,它表示“引用计数对象”;RCObject类应该是抽象的,用作框架的基类(EC++3项目7);应该禁止在堆栈上创建RCObject子类的实例(MEC++1项目27);[添加:][假定Bear是RCObject的具体子类][这里的C.E.表示编译错误]Bearb1;//TriggersC.E.(byusingMEC++1Item27)Bear*b2;//NotallowedbutnowaytotriggerC.E.intrusive_ptrb3;//RecommendedBear*bs1=newBear[8];//TriggersC.E.cont

c++ - 与智能指针(intrusive_ptr)一起使用的抽象基类-处理继承,多态性,可克隆性以及从工厂方法返回

要求我正在编写一个名为RCObject的类,它表示“引用计数对象”;RCObject类应该是抽象的,用作框架的基类(EC++3项目7);应该禁止在堆栈上创建RCObject子类的实例(MEC++1项目27);[添加:][假定Bear是RCObject的具体子类][这里的C.E.表示编译错误]Bearb1;//TriggersC.E.(byusingMEC++1Item27)Bear*b2;//NotallowedbutnowaytotriggerC.E.intrusive_ptrb3;//RecommendedBear*bs1=newBear[8];//TriggersC.E.cont

c++ - 为什么 back_insert_iterator/front_insert_iterator/insert_iterator 的 value_type/difference_type/pointer/reference 都是 void?

在我的项目中,我想将流拆分为一些给定类型的值,所以我实现了一个模板函数templateTOutputIterSplitSpace(std::istream&IS,TOutputIterresult){TElemelem;while(IS>>elem){*result=elem;++result;}returnresult;}我认为这很尴尬,因为我必须在调用时明确给出TElem的类型。例如,我必须写:std::vectorv;SplitSpace(std::cin,back_inserter(v));//IwanttoittobeSplitSpace(std::cin,back_inse

c++ - 为什么 back_insert_iterator/front_insert_iterator/insert_iterator 的 value_type/difference_type/pointer/reference 都是 void?

在我的项目中,我想将流拆分为一些给定类型的值,所以我实现了一个模板函数templateTOutputIterSplitSpace(std::istream&IS,TOutputIterresult){TElemelem;while(IS>>elem){*result=elem;++result;}returnresult;}我认为这很尴尬,因为我必须在调用时明确给出TElem的类型。例如,我必须写:std::vectorv;SplitSpace(std::cin,back_inserter(v));//IwanttoittobeSplitSpace(std::cin,back_inse

c++ - 为什么 std::weak_ptr<> 不提供 bool 转换?

C++11的std::shared_ptr提供了一种bool运算符。operatorunspecified-bool-type()const;(由于bool类型的dangersfromimplicitcasting,它不是一个直接的operatorbool()const。)为什么std::weak_ptr没有类似的运算符?我发现自己经常打字if(!wp.expired())当我想打字时if(wp)为什么weak_ptr没有bool转换? 最佳答案 if(!wp.expired())在多线程代码中几乎总是错误检查,因为直接在if语句之

c++ - 为什么 std::weak_ptr<> 不提供 bool 转换?

C++11的std::shared_ptr提供了一种bool运算符。operatorunspecified-bool-type()const;(由于bool类型的dangersfromimplicitcasting,它不是一个直接的operatorbool()const。)为什么std::weak_ptr没有类似的运算符?我发现自己经常打字if(!wp.expired())当我想打字时if(wp)为什么weak_ptr没有bool转换? 最佳答案 if(!wp.expired())在多线程代码中几乎总是错误检查,因为直接在if语句之

c++ - 我不明白为什么这个函数 "returns a pointer from the list"

我正在读的书,IntroductiontoDataStructureswithLinkedLists(Presentation21),有2个链表示例。这是第一个:EnemySpaceShip*getNewEnemy(){EnemySpaceShip*p_ship=newEnemySpaceShip;p_ship->x_coordinate=0;p_ship->y_coordinate=0;p_ship->weapon_power=20;p_ship->p_next_enemy=p_enemies;p_enemies=p_ship;returnp_ship;}链表的第二个例子是这个:En