草庐IT

accesses

全部标签

c++ - 如何在C++中实现继承并解决错误 "parent class is not accessible base of child class"?

我是C++新手。我喜欢探索C++中继承的概念。每当我尝试编译以下代码时,我都会收到错误消息:forC++includes,orinsteadofthedeprecatedheader.Todisablethiswarninguse-Wno-deprecated.D:\CPracticeFiles\Vehicle.cpp:Infunction`intmain()':D:\CPracticeFiles\Vehicle.cpp:26:error:`voidVehicle::setStationary_state(bool)'isinaccessibleD:\CPracticeFiles\Ve

c++ - 严格指针别名 : is access through a 'volatile' pointer/reference a solution?

在aspecificproblem之后,一个self回答和评论,我想了解它是否是一个合适的解决方案、变通方法/破解或完全错误。具体来说,我重写了代码:Tx=...;if(*reinterpret_cast(&x)==0)...作为:Tx=...;if(*reinterpret_cast(&x)==0)...带有指向指针的volatile限定符。让我们假设在我的情况下将T视为int是有意义的。这种通过volatile引用访问是否解决了指针别名问题?作为引用,来自规范:[Note:volatileisahinttotheimplementationtoavoidaggressiveopti

C++ : restrict access to the superclass' methods selectively?

这是一道面试题。我还不是C++专家,所以我需要一些帮助来找到这个问题的答案(我首先想了解这个问题……这是一个有效的问题吗?)问题:SupposeIhaveaclassBthatderivesfromclassAandIwantedtoreusesome,butnotallofthemethodsofA.HowwouldIrestrictaccesstothesuperclass'methodsselectively?谢谢! 最佳答案 我认为你不能改变A的定义您想选择A中的哪些方法应该可以从B对象访问。using指令可以解决您的问题。

c++ - 文件 stat() 与 access() 检查目录权限

我已成功分别使用stat()和access()来确定用户是否具有对目录的读或读/写访问权限。我的问题是:-有首选方法吗?我看到很多使用stat的例子,但就我的目的而言,访问似乎更轻量级并且服务于目的。-是否存在任何问题(例如-安全)?-我的方法有什么问题吗?这是一些伪代码(从内存重新创建,无需编译)://Usingaccess():boolreadAccessPermission=false;boolwriteAccessPermission=false;if(mode=='r'){if(access(directory,R_OK)==0)readAccessPermission=tr

c++ - 错误 C2248 : 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'

收到此错误,我很确定它在operatorvoidCRational::print()const{print(cout);}voidCRational::print(ostream&sout)const{if(m_denominator==1)cout 最佳答案 您需要通过引用而不是值返回ostream。它试图调用构造函数。也可以传递'a'作为引用:ostream&operator我还注意到打印方法可能是错误的。它有sout作为流的名称传递,但随后直接使用cout实现。应该是voidCRational::print(ostream&s

c++ - 为什么只有 random-access-iterator 在 C++ 中实现 operator+?

我想为STLlist迭代器获取farnext值,但它没有实现operator+,不过vector有它。为什么以及如何获得我想要的值(value)?我想如果我多次调用operator++就可以做到这一点,但这不是有点脏吗?我想做的是:listl;...omitted...list::iteratoritr=l.begin()+3;//but,listiteratordoesnothave//operator+什么是我想要的最佳解决方案? 最佳答案 您想使用std::advance:list::iteratoritr=l.begin()

c++ - Visual Leak Detector 在 ntdll.dll 上抛出 "Access violation reading location"

当我包含时:#include;在我的stdafx.h中运行我的程序,它显示已安装VisualLeakDetector2.5。我可以很好地运行我的程序,但是当它退出时我得到这个错误:Exceptionthrownat0x00007FFFB7F57FE7(ntdll.dll)inCPPAssessment.exe:0xC0000005:Accessviolationreadinglocation0x00007FFFB8095252.Ifthereisahandlerforthisexception,theprogrammaybesafelycontinued.但我只有在启用VisualLe

c++ - 也许我对 [class.access]/7 的理解不正确,但是

从[class.access]/7我们有以下句子:Similarly,theuseofA::Basabase-specifieriswell-formedbecauseDisderivedfromA,socheckingofbase-specifiersmustbedeferreduntiltheentirebase-specifier-listhasbeenseen.classA{protected:structB{};};structD:A::B,A{};参见liveexampleclang。事实上,clang也提示这段代码,不需要延迟。classA{protected:struc

c++ - VS2015 更新 1 个错误,或错误的 C++ : Why can't a friend class access its friend's protected destructor?

以下似乎是ZeroCICE在其自动生成的代码中采用的一种模式,在我看来,这似乎是他们现在为其工具的许多版本制作单例(不确定为什么)的一种方式。各种编译器都没有问题,直到今天发现VisualStudio2015Update1(VS版本14.0.24720.00,VC++版本19.00.23506)报错。在Update1之前,VS2015也没有问题。我不确定它是带有Update1的VS2015C++编译器中的错误(回归?),还是其他编译器放任自流的错误(不符合标准)C++代码。这是代码模式的示例:classFoo{protected:virtual~Foo(){}friendclassFo

java - Java 中的 "last accessed"与 "last modified"文件日期(Windows)

我的windows目录中有一组文件是从别处复制的。在检查其中一个文件的属性时(右键单击->属性),它显示:创建时间:今天,2013年2月11日,下午2:51:56修改时间:2013年1月1日,星期二,上午8:30:04访问时间:今天,2013年2月11日,下午2:51:56“Created”和“Accessed”字段基本上显示文件实际复制到新目录的时间,而“Modified”字段显示原始文件的修改日期。在Java中使用file.lastModified()我得到的是“已访问”(或“已创建”)时间戳。有没有办法获取原始文件的“修改”值? 最佳答案