Questions tagged «access-specifier»


8
如何创建私有类方法?
这种创建私有类方法的方法如何起作用: class Person def self.get_name persons_name end class << self private def persons_name "Sam" end end end puts "Hey, " + Person.get_name puts "Hey, " + Person.persons_name #=> raises "private method `persons_name' called for Person:Class (NoMethodError)" 但这不是: class Person def self.get_name persons_name end private def self.persons_name "Sam" end end puts …


7
为什么Ruby既有私有方法又有受保护的方法?
在阅读本文之前,我认为Ruby中的访问控制是这样工作的: public-可以被任何对象(例如Obj.new.public_method)访问 protected -只能从对象本身以及任何子类内部访问 private -与protected相同,但是该方法在子类中不存在 但是,除了您不能使用显式接收器调用方法(即有效,但不能)之外,看起来protected和private动作相同。privateself.protected_methodself.private_method 这有什么意义呢?在什么情况下,您不希望使用显式接收器调用方法?

5
C ++中的私有虚拟方法
在C ++中将私有方法虚拟化的好处是什么? 我在一个开源C ++项目中注意到了这一点: class HTMLDocument : public Document, public CachedResourceClient { private: virtual bool childAllowed(Node*); virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&); };


9
Ruby中的私有模块方法
我有一个两部分的问题 最佳实践 我有一个使用公用接口对数据结构执行某些操作的算法 当前,它是具有许多静态方法的模块,除了一个公共接口方法外,所有方法都是私有的。 所有方法之间都需要共享一个实例变量。 这些是我可以看到的选项,哪个是最好的?: 模块与静态(红宝石“模块”)的方法 带有静态方法的类 Mixin模块,用于包含在数据结构中 重构算法中修改该数据结构的部分(非常小),并使之混合,从而调用算法模块的静态方法 技术部分 有什么方法可以使私有Module方法吗? module Thing def self.pub; puts "Public method"; end private def self.priv; puts "Private method"; end end 将private在那里似乎没有任何效果,我仍然可以调用Thing.priv没有问题。

5
为什么可以在复制构造函数中访问私有变量?
我了解到,只有在类中具有get函数时,我才能访问私有变量。但是,为什么我可以在复制构造函数中访问它呢? 例: Field::Field(const Field& f) { pFirst = new T[f.capacity()]; pLast = pFirst + (f.pLast - f.pFirst); pEnd = pFirst + (f.pEnd - f.pFirst); std::copy(f.pFirst, f.pLast, pFirst); } 我的声明: private: T *pFirst,*pLast,*pEnd;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.