草庐IT

Initialization

全部标签

c++ - 在这种特定情况下,使用成员初始值设定项列表和在构造函数中赋值有区别吗?

在内部和关于生成的代码,有没有真正的区别:MyClass::MyClass():_capacity(15),_data(NULL),_len(0){}和MyClass::MyClass(){_capacity=15;_data=NULL;_len=0}谢谢... 最佳答案 需要使用初始化列表来初始化常量成员、引用和基类当你需要初始化常量成员、引用和传递参数给基类构造函数时,如注释中提到的,你需要使用初始化列表。structaa{inti;constintci;//constantmemberaa():i(0){}//willfail

iphone - 何时应该使用 initWithNibName 初始化 View Controller ?

在创建ViewController时,我应该什么时候使用init:,什么时候应该使用initWithNibName:bundle:? 最佳答案 -initWithNibName:bundle:是UIViewController的指定初始化器。最终应该叫它。也就是说,尽管Apple的示例(在许多情况下倾向于简洁而不是可维护性),但绝不应该从ViewController本身之外调用它。你会经常看到这样的代码:MYViewController*vc=[[MYViewControlleralloc]initWithNibName:@"Myv

iphone - 何时应该使用 initWithNibName 初始化 View Controller ?

在创建ViewController时,我应该什么时候使用init:,什么时候应该使用initWithNibName:bundle:? 最佳答案 -initWithNibName:bundle:是UIViewController的指定初始化器。最终应该叫它。也就是说,尽管Apple的示例(在许多情况下倾向于简洁而不是可维护性),但绝不应该从ViewController本身之外调用它。你会经常看到这样的代码:MYViewController*vc=[[MYViewControlleralloc]initWithNibName:@"Myv

objective-c - 我应该在 ARC 的 init 方法中引用 self.property 吗?

一个简单的问题。如果我有一个属性和一个用相同名称声明的ivar:在.h文件中:(Reminder*)reminder;@property(nonatomic,strong)(Reminder*)reminder;在.m文件中,如果我使用ARC,我应该使用ivar还是init方法中的属性?-(id)initWithReminder:(Reminder*)reminder_{self=[superinit];if(self){reminder=reminder_;}returnself;}或者我应该像这样使用该属性来获得自动引用计数的好处:-(id)initWithReminder:(Re

objective-c - 我应该在 ARC 的 init 方法中引用 self.property 吗?

一个简单的问题。如果我有一个属性和一个用相同名称声明的ivar:在.h文件中:(Reminder*)reminder;@property(nonatomic,strong)(Reminder*)reminder;在.m文件中,如果我使用ARC,我应该使用ivar还是init方法中的属性?-(id)initWithReminder:(Reminder*)reminder_{self=[superinit];if(self){reminder=reminder_;}returnself;}或者我应该像这样使用该属性来获得自动引用计数的好处:-(id)initWithReminder:(Re

objective-c - BOOL 的默认值

Objective-C中BOOL变量的默认值是多少? 最佳答案 如果写有没有默认值-(void)somemethod{BOOLx;//它被初始化为垃圾。但是,对于BOOLivar,它将被初始化为NO,因为在初始化时整个实例都填充为0。(注意:启用ARC时,本地对象指针将始终具有默认值nil,但非对象类型如BOOL的局部变量仍会被初始化垃圾。见Localvariablessettonil?(Objective-C)。) 关于objective-c-BOOL的默认值,我们在StackOver

objective-c - BOOL 的默认值

Objective-C中BOOL变量的默认值是多少? 最佳答案 如果写有没有默认值-(void)somemethod{BOOLx;//它被初始化为垃圾。但是,对于BOOLivar,它将被初始化为NO,因为在初始化时整个实例都填充为0。(注意:启用ARC时,本地对象指针将始终具有默认值nil,但非对象类型如BOOL的局部变量仍会被初始化垃圾。见Localvariablessettonil?(Objective-C)。) 关于objective-c-BOOL的默认值,我们在StackOver

c++ - 复制初始化和直接初始化有区别吗?

假设我有这个功能:voidmy_test(){Aa1=A_factory_func();Aa2(A_factory_func());doubleb1=0.5;doubleb2(0.5);Ac1;Ac2=A();Ac3(A());}在每个分组中,这些陈述是否相同?或者在某些初始化中是否有额外的(可能可优化的)拷贝?我见过人们说这两件事。请引用文字为证。还请添加其他案例。 最佳答案 C++17更新在C++17中,A_factory_func()的含义从创建临时对象(C++a1)、初始化结束时创建的人工对象或引用绑定(bind)需要一个对

c++ - 复制初始化和直接初始化有区别吗?

假设我有这个功能:voidmy_test(){Aa1=A_factory_func();Aa2(A_factory_func());doubleb1=0.5;doubleb2(0.5);Ac1;Ac2=A();Ac3(A());}在每个分组中,这些陈述是否相同?或者在某些初始化中是否有额外的(可能可优化的)拷贝?我见过人们说这两件事。请引用文字为证。还请添加其他案例。 最佳答案 C++17更新在C++17中,A_factory_func()的含义从创建临时对象(C++a1)、初始化结束时创建的人工对象或引用绑定(bind)需要一个对

c++ - 将数组的所有元素初始化为C++中的一个默认值?

C++Notes:ArrayInitialization有一个很好的数组初始化列表。我有一个intarray[100]={-1};期望它充满-1但不是,只有第一个值是,其余的都是0与随机值混合。代码intarray[100]={0};工作正常并将每个元素设置为0。我在这里遗漏了什么。如果值不为零,就不能初始化它吗?还有2:默认初始化(如上)是否比通常循环遍历整个数组并赋值更快,还是做同样的事情? 最佳答案 使用您使用的语法,intarray[100]={-1};说“将第一个元素设置为-1,其余元素设置为0”,因为所有省略的元素都设置