草庐IT

access-protection

全部标签

c++ - 不能在派生类中使用 protected 运算符==

#includeclassFoo{public:intm_foo;Foo(inta_foo):m_foo(a_foo){}protected:booloperator==(constFoo&a)const{std::cout在我的真实代码中,Foo是一个可以实例化但不应该被允许使用operator==的类,所以我将它设为protected。执行此操作时出现编译器错误:foo.cpp:Inmemberfunction‘boolBar::operator==(constBar&)const’:foo.cpp:9:7:error:‘boolFoo::operator==(constFoo&)

c++ - 使用 protected 继承

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。在准备考试时,我正在看一份旧考试,有一个问题我找不到答案。我没有正确的答案,我的老师已经MIA一段时间了。问题原来不是英文的。假设类CI继承自类Sup,如:classCI:protectedSup{。为什么这不是分类继承?

c++ - ucnv_open 错误 U_FILE_ACCESS_ERROR

我刚刚使用CC编译器(CC:SunC++5.9SunOS_sparcPatch124863-012007/07/2)在SUNSolaris上编译了一个C++应用程序。该应用程序正在使用ICU支持全局化。但是,在运行应用程序时,我们在方法ucnv_open("ibm-9448_X100-2005",&status)上遇到了beow错误19-Jun12:12:27[0]:erroropeningICUconverter:U_FILE_ACCESS_ERRORXalanCtrl::XalanCtrl():dLanguage(""),dLegendPage(""),dLayoutDir("")

c++ - 从子类初始化 protected 静态成员

我想知道是否可以从子类中初始化一个protected静态成员。例如,//headfileclassTest{protected:staticinti;};classTest2:publicTest{};//cppfile#include"headfile.h"intTest2::i=1;如您所见,当我初始化这个静态成员(i)时,我使用了子类名称(Test2)。令我惊讶的是,我用visualstudio2013测试了这段代码,它没有出错。但是如果我在Linux下使用Netbeans(gcc11)尝试它,我得到一个提示错误:无法解析标识符i然后我编译了一下,报错信息是:错误:ISOC++不

c++ - 如何通过派生类访问基类的 protected 成员?

这个问题在这里已经有了答案:Accessingprotectedmembersinaderivedclass(8个答案)关闭3年前。我正在尝试几个关于继承的程序,结果是以下导致了错误,但我真的不知道原因。#includeusingnamespacestd;classBase{protected:intx=0;};classDerived:publicBase{//OK:accessprotectedmemberviathisvoidg(){cout我希望派生类可以访问基类的公共(public)或protected数据成员和成员函数。然而它并没有像我想的那样起作用,谁能帮我阐明我的概念?

c++ - 使用语句和 protected 构造函数

这个问题在这里已经有了答案:C++11inheritingconstructorsandaccessmodifiers(1个回答)关闭3年前。classA{protected:A(int){}};structB:publicA{public:usingA::A;};voidprint(Bb){}intmain(intargc,char**argv){print(1);return0;}此代码无法编译...即使在结构B公共(public)部分中使用“usingA::A”,B仍然没有接受int的公共(public)构造函数(但它有一个protected构造函数)。似乎是:我可以使用'usi

【Java】一文彻底弄懂访问修饰符(public/protected/默认/private)--建议收藏

博主简介:努力学习的预备程序媛一枚~博主主页:@是瑶瑶子啦所属专栏:Java岛冒险记【从小白到大佬之路】前言 OOP(ObjectOrientedPrograming),即面向对象编程,最重要的功能/特点之一就是封装,这点在该专栏开篇博客【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量就已经提到过(包括隐藏信息的好处):如何实现信息隐藏呢?Java使用了访问控制修饰符(modifiner)来实现这篇文章,我们重点学习Java中又一重要语法知识访问控制修饰符先上思维导图,看文章时,对文章讲解思路&脉络更好把握:目录前言Part1:分类Part2:可修饰对象Part3

c++ - 为什么这个 EXC_BAD_ACCESS 发生在 long long 而不是 int 上?

我遇到了一个EXC_BAD_ACCESS,其中包含一段处理数据序列化的代码。该代码仅在设备(iPhone)上失败,在模拟器上不会。它还仅在某些数据类型上失败。这是重现问题的测试代码:templatevoidtest_alignment(){//allocatememoryandrecordtheoriginaladdressunsignedchar*origin;unsignedchar*tmp=(unsignedchar*)malloc(sizeof(unsignedshort)+sizeof(T));origin=tmp;//pushdatawithsizeof2bytes*((u

c++ - 异常 : Access violation

下面这段代码有什么问题以及如何修复它。#includeusingnamespacestd;templateclassguard{public:guard(Func1first,Func2last):last(last){first();}~guard(){last();}private:Func2&last;};templateguardmake_guard(Func1first,Func2last){returnguard(first,last);}voidfirst(){cout函数first()和last()不能在变量g过期之前被调用。在VC++2012上编译,在调试和Relea

c++ - 派生类不能使用指向 protected 基类成员的成员指针

includeclassBase{protected:intfoo;intget_foo(){returnfoo;}};classDerived:publicBase{public:voidbar(){intBase::*i=&Base::foo;this->*i=7;printf("foois%d\n",get_foo());}};intmain(){Derivedd;d.bar();}我不明白为什么我的派生类型不能指向基类的protected成员。它有权访问该成员。它可以调用类似作用域的函数。为什么它不能创建一个成员指针?我正在使用gcc4.1.2,但出现此错误:test.cc:I