草庐IT

objects_copy

全部标签

c++ - C++ 和 Objective C 中的多态性

我是ObjectiveC的新手,我想更清楚地理解protocol的概念。@protocolprotocolName@optional@required@end我可以将@optional部分与virtualfunction和@required部分与C++的purevirtualfunction相关联吗?@protocol是Objective-C创建接口(interface)和抽象类的方式吗? 最佳答案 Is@protocoliswayofObjective-Ctocreateinterfaceandabstractclass?没错。C

c++ - 使用 std::copy 复制所有元素的地址

我正在尝试获取给定集合的所有元素的地址并将它们复制到std::set。基本上,而不是std::sets1;std::copy(first1,last1,std::inserter(s1,s1.begin()));我想插入他们的地址。像这样的东西:std::set>s1;std::copy(reference_iterator(first1),reference_iterator(last1),std::inserter(s1,s1.begin()));在这里,reference_iterator将是一个迭代器,返回其元素的地址,而不是元素,这与boostindirect_iterato

c++ - 在 copy-and-swap 习语中实现交换

正在关注Whatisthecopyandswapidiom和Howtoprovideaswapfunctionformyclass,我尝试像后者接受的答案选项2那样实现交换函数(具有调用成员函数的自由函数),而不是前一个链接中的直接友好自由函数。但是下面的不编译#include//Uncommentingthefollowingtwolineswon'tchangethestateofaffairs//classBar;//voidswap(Bar&,Bar&);classBar{public:Bar(unsignedintbottles=0):bottles(bottles){enf

c++ - 如何解决出现在 Objective-C++ 而不是 Objective-C 中的链接错误?

我正在将我的AppDelegate文件从.m转换为.mm(Objective-C到Objective-C++),以便我可以访问用Objective-C++编写的第三方库。在Objective-C中,我的应用程序委托(delegate)构建并运行良好。但是当我更改扩展名时,项目构建并且出现链接错误,所有这些都缺少我使用的用C编写的静态库中的符号。这些错误是具有以下格式的经典链接错误:“MyFunction(arguments)”,引用自:-MyAppDelegate.o中的[MyAppDelegatemyMethod]找不到符号所有的问题都在应用委托(delegate)对象中。我知道我已

c++ - 如何在 Objective-C 中包装 C++ 库?

我有一个包含数据结构实现的C++库(仅限.h),我想在我的iPhone应用程序中使用它。首先,我在objective-C++中编写了一个包装器作为一个类,通过组合,它具有C++类的ivar。然后我“不得不”将包装器类扩展名更改为.mm,这看起来不错。但是后来我必须将这个包装的类文件包含到其他几个文件中,所以我也必须更改它们的扩展名(以防止一波编译时错误)。我说的对吗?有没有办法将.mm扩展名“限制”为几个文件?(从而防止名称冲突等)编辑:更多可能有用的信息,我使用LLVM1.5作为编译器(我注意到编译时错误的数量从GCC4.2到LLVM1.5不等,但我不确定这是否意味着什么,因为我没有

C++ 标准 : return by copy to initialize a reference without RVO: is there any copy?

让我们考虑下一个示例:structbig_type{};//Returnbycopyautofactory(){returnbig_type{};}voidany_scope_or_function(){big_type&&lifetime_extended=factory();}假设RVO被禁止或根本不以任何方式存在,big_type()是否会或可以被复制?还是将引用直接绑定(bind)到return语句中构造的临时对象?我想确保big_type析构函数仅在any_scope_or_function结束时被调用一次。我使用C++14,以防某些行为在标准版本之间发生变化。

c++ - 这是正确的 : virtual method of Derived called before constructing Base object?

我知道在Base类的构造函数中-当调用虚拟方法时-调用Base方法,而不是派生-参见Callingvirtualfunctionsinsideconstructors.我的问题与这个主题有关。我只是想知道如果我在Derived类构造函数中调用虚拟方法会发生什么-但在构造Base部分之前。我的意思是调用虚方法来评估基类构造函数参数,请参见代码:classBase{public:Base(constchar*name):name(name){cout编译器g++(4.3.x-4.5x版本)输出为:Derived::getName()Base():DerivedDerived():Deriv

如何收听AN< object>的负载事件

我正在加载外部资源object元素和我想在Angular2+指令上听“负载”事件。使用@HostListener装饰器,处理程序被无限期地称为。尝试使用该事件在组件中使用(load)在模板上并获得相同的行为-循环。还检查并尝试了所有生命周期钩,但似乎在负载完成时似乎没有触发。您可以使用jQuery轻松完成,例如:element.on('load',function(){})使用Angular4.2.3有什么建议/想法吗?谢谢看答案发现我正在经历这个无限的循环,因为我在打电话给sanitizer.bypassSecurityTrustResourceUrl()(直接从模板上的URL上)(doms

c++ - Qt - Q_OBJECT 与#include <QObject>

是否使用Q_Object宏和#include有同样的效果吗?换句话说,它们是相同目的的两种不同方式吗?谢谢。 最佳答案 没有。您需要在信号/插槽的类定义中使用Q_OBJECT,此外还需要包含正确的header。来自QObjectapidocs:NoticethattheQ_OBJECTmacroismandatoryforanyobjectthatimplementssignals,slotsorproperties.YoualsoneedtoruntheMetaObjectCompileronthesourcefile.Westr

c++ - 为什么这里调用的是 Copy Constructor 而不是普通的 Constructor 和重载的赋值运算符?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:IsthereadifferenceinC++betweencopyinitializationanddirectinitialization?CopyconstructorsandAssignmentOperators我有一个C类,我在其中重载了Normal、复制构造函数和赋值运算符以打印被调用内容的踪迹。我写了以下代码来测试什么时候被调用?Cc1;-->NormalConstuctor..//understoodFineCc2;c2=c1;-->Normalconstructor+assignmentop