Tag: 初始值设定项

如何在C ++类的初始化列表中初始化member-struct?

我在c ++中有以下类定义: struct Foo { int x; char array[24]; short* y; }; class Bar { Bar(); int x; Foo foo; }; 并希望在Bar类的初始化程序中将“foo”结构(及其所有成员)初始化为零。 这可以做到这一点: Bar::Bar() : foo(), x(8) { } …? 或者foo(x)在初始化列表中做了什么? 还是该结构甚至从编译器自动初始化为零?

PHP中的静态类初始化器

我有一个辅助类与一些静态function。 类中的所有函数都需要一个“繁重的”初始化函数来运行一次(就像它是一个构造函数一样)。 有没有一个很好的做法,实现这一目标? 我唯一想到的就是调用一个init函数,如果它已经运行一次(使用静态的$initializedvariables),就会中断它的stream程。 问题是我需要在每个类的函数上调用它。

在Ruby中,“新”和“初始化”之间有什么关系? 初始化时如何返回nil?

我想要的是: obj = Foo.new(0) # => nil or false 这不起作用: class Foo def initialize(val) return nil if val == 0 end end 我知道在C / C ++ / Java / C#中,我们不能在构造函数中返回一个值。 但是我想知道在Ruby中是否可能。

在Java中使用初始化与构造函数

所以我最近一直在研究Java技术,并且发现了一些我以前不知道的function。 静态和实例初始化器是两种这样的技术。 我的问题是什么时候会使用初始化,而不是在构造函数中包含代码? 我想到了一些明显的可能性: 静态/实例初始化可以用来设置“最终”静态/实例variables的值,而构造函数不能 静态初始化器可以用来设置类中的任何静态variables的值,这应该比每个构造函数的开头有一个“if(someStaticVar == null)// do stuff”代码块更有效率 这两种情况都假设设置这些variables所需的代码比简单的“var = value”更复杂,否则似乎没有任何理由使用初始化程序,而不是在声明variables时简单地设置值。 然而,虽然这些并不是微不足道的收益(特别是设置最终variables的能力),但似乎应该使用初始化器的情况似乎有限。 人们当然可以使用一个初始化器来完成构造函数中的大量工作,但是我并不认为这样做的理由。 即使一个类的所有构造函数都共享了大量的代码,使用私有的initialize()函数似乎比使用初始值设定项更有意义,因为它不会locking您在编写新代码时运行该代码构造函数。 我错过了什么吗? 是否还有一些其他情况下应该使用初始化器? 或者,这真的只是一个相当有限的工具,用于非常具体的情况?