问题标签 [private-members]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 类中私有成员的目的
在面向对象编程中拥有类/结构的私有/受保护成员的目的是什么?让所有成员都公开有什么害处?
c++ - 如何在派生类中实现私有虚函数?
我知道我为什么要使用私有虚函数,但我该如何实现它们呢?
例如:
第一个版本还可以,但并非总是可行。第二个版本不就是隐藏名字吗?如果你不能在 的类声明中定义 ,你如何Base::func()
定义?Derived2
Dereived2
谢谢
c# - (C#) 遍历只读私有集合成员
我有一个有两个HashSet<String>
集合作为私有成员的类。我的代码中的其他类希望能够遍历这些 HashSet 并读取它们的内容。我不想写一个标准的getter,因为另一个类仍然可以做类似的事情myClass.getHashSet().Clear();
有没有其他方法可以将我的HashSets的元素暴露给迭代而不暴露对HashSet本身的引用?我希望能够以与 for-each 循环兼容的方式执行此操作。
c - 在 C 结构中隐藏成员
我一直在阅读 C 中的 OOP,但我从不喜欢你不能像在 C++ 中那样拥有私有数据成员。但后来我想到你可以创建 2 个结构。一个在头文件中定义,另一个在源文件中定义。
从这里您可以将一个结构转换为另一个结构。这被认为是不好的做法吗?还是经常做?
javascript - 使用 ExtJS 扩展类时的私有成员
我在ExtJS 论坛上对扩展类中的私有方法和字段进行了一些研究,但我找不到任何真正的答案。
当我说扩展类时,我的意思是这样的:
这里的问题是一切都是公开的。那么,如何在MyExtendedClass范围内添加一个无法从外部访问但可以通过公共方法访问的新变量 o 方法?
crash - 由于推送和弹出 UIViewControllers,UINavigationController 崩溃
问题: 我有一个 UINavigationController 作为 UIWindow 的子视图、一个 rootViewController 类和一个自定义 MyViewController 类。以下步骤将获得 Exc_Bad_Access,100% 可重现。:
点击左回 tapBarItem 两次(弹出两个 myViewController 实例)以显示 rootViewController。
经过 1/2 天的痛苦尝试和错误,我终于找到了答案,但也提出了一个问题。
解决方案:我将 .m 文件中的许多对象声明为声明私有变量的一种惰性方式,以避免使 .h 文件混乱。例如,
由于某些原因,当加载 myViewController_2ndInstance 的视图后卸载 myViewController_1stInstance 的视图(但仍在导航控制器的堆栈中)时,iphone OS 可能会丢失这些“惰性私有”变量内存分配的跟踪。由于 myViewController_2ndInstance'view 仍然加载,第一次点击后面的 tapBarItem 是可以的。但是第二次点击后面的 tapBarItem 给了我地狱,因为它试图释放第一个实例。它称为 [variable release] 导致 Exc_Bad_Access 因为它随机指向(松散的指针)。
要解决这个问题很简单,在 .h 文件中将 variable1 声明为 @private。
这是我的问题: 我一直在使用“惰性私有”变量很长一段时间没有任何问题,直到它们参与 UINavigationController。这是 iPhone OS 中的错误吗?还是我对 Objective C 存在根本性的误解?
c++ - 私人成员黑客行为是否已定义?
我有以下课程:
这是一个外部库(我无法更改)。我显然无法更改 的值m_value
,只能读取它。即使派生自BritneySpears
也行不通。
如果我定义以下类怎么办:
然后做:
我知道这是不好的做法。但只是出于好奇:这能保证有效吗?它是定义的行为吗?
额外的问题:你曾经使用过这么丑陋的黑客吗?
编辑:只是为了吓唬更少的人:我不打算在真正的代码中真正做到这一点。我是在想 ;)
iphone - iPhone静态库:如何隐藏实例变量
我正在创建一个静态库以使用以下指南共享: http ://www.amaterinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html
在其中一个函数中,我返回一个“SomeUIView”,它是 UIView 的子类并在公共标头中定义,但是我不想在公共标头中公开 SomeUIView 的内部实例变量。
我已经尝试将类别用于 SomeUIView 的私有内部头文件,但我一直遇到“类 'SomeUIView' 的重复接口声明”。
有谁知道如何做到这一点?
谢谢!
perl - 在什么情况下,实例变量在“使用字段”私有中声明为“_var”?
我试图了解fields
pragma 的行为,我发现它的记录很差,关于以下划线前缀的字段。这是文档必须说的:
以下划线字符开头的字段名称对类是私有的,对子类不可见。继承的字段可以被覆盖,但如果与 -w 开关一起使用会生成警告。
根据我在下面的测试,这与其实际行为不一致。- 前缀字段不仅_
在子类中可见,它们在外部类中也可见(除非我不明白“可见”的含义)。此外,直接访问受限哈希也可以正常工作。
除了查看源代码之外,我在哪里可以找到有关fields
编译指示行为的更多信息?
apache-flex - Flex:你如何列出一个类的私有属性?
我尝试在 Flex中序列化具有私有属性的对象。
自省 API似乎不允许这样做:“describeType() 方法只返回公共成员。该方法不返回调用者超类或调用者不是实例的任何其他类的私有成员。”
实例是否有另一种方法可以知道其私有成员的名称?