我知道这是一个愚蠢的问题,但我仍然有疑问需要清除。 我的问题是为什么我们不能将一个类定义为protected。 我知道我们不能,但为什么? 应该有一些具体的原因。
我希望能在我的软件包中有两个“受保护的”类。 也就是说,我不想让我的包之外的文件看到它们是可见的 – 它们将只在包内部使用。 我怎样才能做到这一点?
我在github项目中有几个贡献者。 我只想让他们中的一个“推”主。 而这个人不是我(仓库的所有者)。 有可能吗?
编译我正在编写的项目(商业多平台C ++游戏引擎,在Mac OS X 10.6上使用GCC 4.2编译)时,我启用了-Wstack-protector警告。 即使启用了堆栈保护function,该标志也会警告不会受到堆栈粉碎-fstack-protector的function。 海湾合作委员会在build设项目时发出一些警告: 不保护function:无缓冲区至less8字节长 不保护局部variables:可变长度缓冲区 对于第一个警告,我发现可以调整缓冲区在函数中使用时必须具有的最小大小,以防止堆栈粉碎:– –param ssp-buffer-size=X可以使用,其中X默认为8,可以低至1。 对于第二个警告,除非我停止使用-Wstack-protector否则我不能抑制它的发生。 什么时候应该使用-fstack-protector ? (例如,在开发过程中的所有时间,或只是跟踪错误?) 什么时候应该使用-fstack-protector-all ? 什么是-Wstack-protector告诉我? 是否build议我减less缓冲区的最小大小? 如果是这样的话,把尺寸设置为1还有什么缺点吗? 看起来,如果你想要一个免警告的构build, -Wstack-protector并不是你想要的标志。 这是正确的吗?
在C ++中,我想不出一个我想从基类inheritanceprivate / protected的情况: class Base; class Derived1 : private Base; class Derived2 : protected Base; 它真的有用吗?
为什么会有人声明一个构造函数被保护? 我知道构造函数被宣布为私有的,目的是不允许它们在堆栈上创build。
在接口上声明受保护访问成员的参数是什么? 例如,这是无效的: public interface IOrange { public OrangePeel Peel { get; } protected OrangePips Seeds { get; } } 在这个例子中, IOrange接口将保证实现者至less向其inheritance者提供一个OrangePips实例。 如果实施者想要的话,他们可以将范围扩大到public : public class NavelOrange : IOrange { public OrangePeel Peel { get { return new OrangePeel(); } } protected OrangePips Seeds { get { return null; } } } public class ValenciaOrange : […]
Ruby中的方法可见性(公共,受保护和私有方法)已经在这篇博文中得到很好的解释。 但是在Ruby on Rails中,由于框架的设置方式,它和普通的Ruby应用程序看起来略有不同。 那么,在Rails模型,控制器,帮助器,testing等方面,何时/不适合使用受保护或私有方法? 编辑 :感谢迄今为止的答案。 我理解Ruby中的protected和private的概念,但是我更多地了解这些types的可见性在Rails应用程序(模型,控制器,帮助程序,testing)的各个环境中使用的典型方式。 。 例如,公共控制器方法是操作方法,应用程序控制器中的受保护方法用于需要由多个控制器访问的“辅助方法”。
你应该使用受保护的成员variables吗? 有什么优势,这可能导致什么问题?
有没有人有任何想法, 为什么在AbstractList (以及在ArrayList中 )removeRange方法是protected ? 它看起来像一个相当明确和有用的操作,但仍然使用它,我们被迫inheritanceList实现。 有一些隐藏的理由吗? 看来对我来说莫名其妙。