草庐IT

member-access

全部标签

c++ - 如何在函数声明中声明 C++ mem_fn(member_function)?

我理解在其类之外传递成员函数地址的基本问题。我觉得mem_fn()可能是解决方案,但我在具体细节上遇到了麻烦。我在类p中有一个成员函数,当前声明为typedefvoid(*valNamedFlagsCallback)(constint,constbool);boolvalNamedFlags(constOptBlk*operand,constchar*description_of_value_or_NULL,constintsubscripts[],constchar*names[],valNamedFlagsCallbackcallBack);在e类中,我试图用调用valNamedF

c++ - 解决 "only static const integral data members can be initialized within a class"编译错误

以下创建全局对象会导致编译错误。#include"stdafx.h"#includeusingnamespaceSystem;usingnamespacestd;#pragmahdrstopclassTester;voidinput();classTester{staticintnumber=5;public:Tester(){};~Tester(){};voidsetNumber(intnewNumber){number=newNumber;}intgetNumber(){returnnumber;}}TestertesterObject;voidmain(void){cout>ne

c++ - Q_PROPERTY : MEMBER vs READ/WRITE

我正在阅读有关Q_PROPERTY宏的Qt5.5文档,但我无法很好地理解它。我知道您可以在此宏中使用关键字MEMBER或访问器READ/WRITE。如果您使用关键字MEMBER,则不必编写访问器,因为您可以使用setProperty()和Property()访问您的私有(private)数据成员(属性),如set和get。关键是:使用MEMBER和使用READ/WRITE有什么区别吗?什么时候应该使用一种方式,什么时候使用另一种方式?如有必要:使用MEMBER的例子:Q_PROPERTY(QStringtextMEMBERm_textNOTIFYtextChanged)使用读/写的例子

c++ - XP : Is turning off "last access time" safe? 上的文件

我正在拼命寻找廉价的方法来缩短我家用PC上的构建时间。我刚读了一个articleaboutdisablingtheLastAccessTimeattributeWindowsXP上的文件,因此简单的读取不会将任何内容写回磁盘。It'sreallysimpletoo.AtaDOS-promptwrite:fsutilbehaviorsetdisablelastaccess1有没有人在构建C++项目的环境中尝试过它?有什么缺点吗?[编辑]有关主题的更多信息here. 最佳答案 来自SetFileTime'sdocumentation:“

C++ 专家 : is the offset of a member variable to its class constant under these conditions?

给定FooClass*类型的变量foo和该类中名为bar的成员变量,是foo之间的距离和&(foo->bar)在有一些约束的任何情况下都是一样的:FooClass是非POD类型。我们知道foo将始终指向FooClass的实例,而不是它的某个子类型。我们只关心单一编译器和单一编译下的行为;也就是说,在gcc下这可能导致的值永远不会在用MSVC编译的代码中使用,并且永远不会保存以在编译之间重新使用。它在二进制中计算并在二进制中使用,仅此而已。我们不使用自定义new,尽管该类的一些实例可能是堆栈分配的,一些是堆分配的。FooClass没有明确的ctor;它依赖于编译器生成的(FooClass

c++ - boost 共享指针 : Simultaneous Read Access Across Multiple Threads

我有一个线程A,它分配内存并将其分配给一个共享指针。然后该线程生成另外3个线程X、Y和Z,并将共享指针的拷贝传递给每个线程。当X、Y和Z超出范围时,内存将被释放。但是是否有可能2个线程X、Y在完全相同的时间点超出范围并且引用计数存在竞争条件,因此它不会将其递减2,而只会递减一次。所以,现在引用计数newer下降到0,所以存在内存泄漏。请注意,X、Y和Z仅读取内存。不写入或重置共享指针。长话短说,引用计数是否存在竞争条件,这会导致内存泄漏吗? 最佳答案 boost::shared_ptr使用锁(或无锁原子访问)来确保引用计数以原子方式

c++ - string::iterator 一定是 random_access_iterator 吗?

This页面声明string::iterator和string::const_iterator是“编译器特定的迭代器类型”。这是否意味着string::iterator属于random_access_iterator以外的类别? 最佳答案 ISOC++03,21.3-2声明:(...)Additionally,becausetheiteratorssupportedbybasic_stringarerandomaccessiterators(...)是的,这些必然是随机访问迭代器。 关于

从安全、开发、产品三个角度反对用refresh_token续期access_token的观点

说明:access_token:服务端与客户端通信,有时服务端需要知道客户端的身份,就会用到access_token来用于验证身份。refresh_token:但为了保证安全token会设置过期时间,如果直接过期,相当于用户或调用端正在使用产品,突然间就退出登录了,这种产品体验很差,于是有了refresh_token。简易流程:登录后,服务端返回两个token,用于确定身份的access_token(短时间过期),和刷新access_token的refresh_token(长时间过期),请求接口时,如果access_token未过期则正常使用;当access_token过期但refresh_t

ios - CLLocationManager.authorizationStatus 导致 EXC_BAD_ACCESS code=2

如果允许定位服务,我的第一个应用到目前为止运行良好。只要我特别禁用此应用的定位服务(飞行模式,以及通常禁用的定位服务都按预期工作)。代码如下:funclocationServices()->Bool{ifCLLocationManager.locationServicesEnabled(){switch(CLLocationManager.authorizationStatus()){case.NotDetermined,.Restricted,.Denied:returnfalsecase.AuthorizedAlways,.AuthorizedWhenInUse:returntru

ios - NSData.write 在 iOS 8 上触发 ECX_BAD_ACCESS

我的应用程序显示OpenStreetMap瓦片(256*256图像),并在用户浏览map时将它们缓存在磁盘上。在iOS10上,一切正常,但在iOS8上,如果我不以原子方式写入NSData,应用程序就会崩溃(EXC_BAD_ACCESS)。原子地执行它没有问题,但我想了解发生了什么。这是我正在使用的相关代码:privatefuncputInCache(key:NSString,data:NSData){//Getthepath:letpath:String="\(self.imagesFolderPath)/\(key)";varsuccess:Bool=false;//Savethei