Tag: 初始化

如何初始化结构?

我应该在我的任意结构中实现什么成员来进行以下任务: public struct MyStruct { String s; Int length; } MyStruct myStruct = new MyStruct { s = "Hello", length = 5 }; // Now, I want the following code to set the 's' to "Lol" and the // length to 3 (length of "Lol"). The second part should be done // automatically. myStruct = […]

未初始化的原始实例variables是否使用内存?

在Java中,是否花费内存来声明一个类级别的实例variables而不进行初始化? 例如: int i; 如果我不用i = 5;初始化它,请使用任何内存i = 5; ? 细节: 我有一个巨大的超类,许多不同的(不足以拥有自己的超类)子类扩展。 一些子类不使用超级类声明的每一个单一基元。 我是否可以简单地保留未初始化的这样的原语,并且只在必要的子类中初始化它们以节省内存?

C + + 11:更正std ::数组初始化?

如果我初始化一个std ::数组如下,编译器给我一个关于缺less大括号的警告 std::array<int, 4> a = {1, 2, 3, 4}; 这解决了这个问题: std::array<int, 4> a = {{1, 2, 3, 4}}; 这是警告信息: missing braces around initializer for 'std::array<int, 4u>::value_type [4] {aka int [4]}' [-Wmissing-braces] 这只是我的gcc版本中的一个错误,还是故意完成的? 如果是这样,为什么?

轻松find未初始化的成员variables

我正在寻找一种简单的方法来查找未初始化的类成员variables。 在运行时或编译时查找它们是可以的。 目前我在类的构造函数中有一个断点,并逐个检查成员variables。

正确的方法来初始化C ++结构

我们的代码包含一个POD(普通的旧数据结构)结构(它是一个基本的C ++结构,它有其他结构和PODvariables,需要在开始时进行初始化)。 根据我所阅读的内容 ,似乎是: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); 应将所有值初始化为零,如下所示: myStruct = new MyStruct(); 但是,当结构以第二种方式初始化时,Valgrind稍后会在使用这些variables时抱怨“条件跳转或移动取决于未初始化的值”。 我的理解是有缺陷的,还是Valgrind误报?

用一个值初始化整个二维数组

随着下面的声明 int array[ROW][COLUMN]={0}; 我得到所有零的数组,但与下面的一个 int array[ROW][COLUMN]={1}; 我没有得到具有所有一个值的数组。 默认值仍然是0。 为什么这个行为,我怎么可以初始化所有1? 编辑:我刚刚明白,使用memset的值为1,将设置每个字节为1,因此每个数组单元格的实际值不会是1,但16843009 。 我如何将它设置为1?

在现代C ++(C ++ 11及以上版本)中正确初始化variables,使用()或{}?

C ++参考页面指出()用于值初始化,{}用于值和聚合和列表初始化。 所以,如果我只想要初始化值,我使用哪一个? () 要么 {}? 我在问,因为在Bjarne本人的“C ++游览”一书中,他似乎更喜欢使用{},甚至对于值初始化(例如参见第6页和第7页),所以我认为总是很好的做法使用{},即使是值初始化。 不过 ,最近我被下面的bug吓坏了。 考虑下面的代码。 auto p = std::make_shared<int>(3); auto q{ p }; auto r(p); 现在根据编译器(Visual Studio 2013), qtypesstd::initializer_list<std::shared_ptr<int>> ,这不是我的意图。 我实际上想要的q实际上是r是什么,这是std::shared_ptr<int> 。 所以在这种情况下,我不应该使用{}来进行值初始化,而是使用()。 鉴于此,为什么Bjarne在他的书中似乎仍然倾向于使用{}来进行值初始化? 例如,他在第6页的底部使用了double d2{2.3} 。 为了明确地回答我的问题,我应该什么时候使用()以及何时使用{}? 这是语法正确还是编程实践的问题? 哦,呃,如果可能的话请用简单的英语。 编辑:这似乎是我稍微误解了价值初始化 (见下面的答案)。 但是,上述问题仍然存在。

Ruby对象打印出来作为指针

我试图创build一个类,它有一个构造函数,只有一个参数。 当我创build对象的新实例时,它将返回一个指针。 class Adder def initialize(my_num) @my_num = my_num end end y = Adder.new(12) puts y 我究竟做错了什么? 谢谢

string的静态NSArray – 在视图控制器中如何/在哪里初始化

在一个Master-Detail应用程序中,我想显示一个带有5个部分的TableView: 你的举动 他们的移动 赢得游戏 迷失的游戏 选项 所以我在Xcode 5.0.2中创build一个空白的Master-Detail应用程序,然后在它的MasterViewController.m(这是一个UITableViewController)我试图实现该方法: – (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return _titles[section]; } 我的问题是如何启动NSArray _titles? 我想在MasterViewController.m中: #import "MasterViewController.h" #import "DetailViewController.h" static NSArray *_titles_1 = @[ @"Your Move", @"Their Move", @"Won Games", @"Lost Games", @"Options" ]; @interface MasterViewController () { NSMutableArray *_games; NSArray *_titles_2 = @[ @"Your Move", @"Their Move", @"Won Games", […]

复制和直接初始化背后的动机有什么不同?

为什么复制构造函数调用而不是转换构造函数有点相关? 有两种初始化语法,直接和复制初始化: A a(b); A a = b; 我想知道他们有不同的定义行为的动机。 对于复制初始化,涉及额外的副本,我不能想到该副本的任何目的。 由于它是一个临时副本,因此它可能也可能会被优化,所以用户不能依赖它发生 – 但是额外的副本本身对于不同的行为是不够的。 所以为什么?