标签: initialization

既然我们有std :: array,那么C-style数组的用途是什么?

std::array远远优于C阵列.即使我想与遗留代码进行互操作,我也可以使用std::array::data().有什么理由我想要一个老派阵列吗?

c++ arrays initialization c++11

85
推荐指数
5
解决办法
3万
查看次数

将代码添加到__init__.py

我正在研究django中的模型系统是如何工作的,我发现了一些我不理解的东西.

我知道你创建一个空__init__.py文件来指定当前目录是一个包.并且您可以设置一些变量,__init__.py以便导入*正常工作.

但是django添加了一堆来自... import ...语句并定义了一堆类__init__.py.为什么?这不是让事情看起来凌乱吗?是否有需要此代码的原因__init__.py

python initialization package

84
推荐指数
4
解决办法
6万
查看次数

未初始化的对象与对象初始化为NULL

我在Java工作.

我通常会设置一些对象:

public class Foo {
    private SomeObject someName;

    // do stuff

    public void someMethod() {
        if (this.someName != null) {
            // do some stuff
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:someName在这个例子中等于null,as-in我可以reliably for all objects假设null检查未初始化的对象是否准确?

java null initialization

84
推荐指数
2
解决办法
7万
查看次数

JavaFX:如何在初始化期间从控制器获取阶段?

我想从我的控制器类处理阶段事件(即隐藏).所以我要做的就是通过添加一个监听器

((Stage)myPane.getScene().getWindow()).setOn*whatIwant*(...);
Run Code Online (Sandbox Code Playgroud)

但问题是初始化刚刚开始

Parent root = FXMLLoader.load(getClass().getResource("MyGui.fxml"));
Run Code Online (Sandbox Code Playgroud)

之前

Scene scene = new Scene(root);
stage.setScene(scene);
Run Code Online (Sandbox Code Playgroud)

因此.getScene()返回null.

我自己找到的唯一解决方法是向myPane.sceneProperty()添加一个监听器,当它变为非null时,我得到场景,添加到它的.windowProperty()我的!该死!我最终检索阶段的监听器处理.这一切都以设置所需的听众来举办舞台活动而告终.我认为听众太多了.这是解决我问题的唯一方法吗?

javafx initialization stage javafx-2 javafx-8

83
推荐指数
4
解决办法
12万
查看次数

十字架初始化有什么迹象?

考虑以下代码:

#include <iostream>
using namespace std;

int main()
{
    int x, y, i;
    cin >> x >> y >> i;
    switch(i) {
        case 1:
            // int r = x + y; -- OK
            int r = 1; // Failed to Compile
            cout << r;
            break;
        case 2:
            r = x - y;
            cout << r;
            break;
    };
}
Run Code Online (Sandbox Code Playgroud)

G ++抱怨.crosses initialization of 'int r'我的问题是:

  1. 什么是crosses initialization
  2. 为什么第一个初始化程序x + y通过编译,但后来失败了?
  3. 所谓的问题是什么crosses initialization

编辑 …

c++ initialization

81
推荐指数
2
解决办法
9万
查看次数

如何在Swift中将数组的所有成员初始化为相同的值?

我在Swift中有一个大数组.我想将所有成员初始化为相同的值(即它可以是零或其他值).什么是最好的方法?

arrays initialization swift

81
推荐指数
2
解决办法
6万
查看次数

C++ 11允许非静态和非const成员的类内初始化.改变了什么?

在C++ 11之前,我们只能对整数或枚举类型的静态const成员执行类内初始化.Stroustrup在他的C++ FAQ中讨论了这个问题,给出了以下示例:

class Y {
  const int c3 = 7;           // error: not static
  static int c4 = 7;          // error: not const
  static const float c5 = 7;  // error: not integral
};
Run Code Online (Sandbox Code Playgroud)

以下推理:

那么为什么存在这些不方便的限制呢?类通常在头文件中声明,并且头文件通常包含在许多翻译单元中.但是,为避免复杂的链接器规则,C++要求每个对象都有唯一的定义.如果C++允许将需要作为对象存储在内存中的实体的类内定义,则该规则将被破坏.

但是,C++ 11放宽了这些限制,允许非静态成员的类内初始化(§12.6.2/ 8):

在非委托构造函数中,如果给定的非静态数据成员或基类未由mem-initializer-id指定(包括没有mem-initializer-list的情况,因为构造函数没有ctor-initializer)然后,实体不是抽象类(10.4)的虚基类

  • 如果实体是具有大括号或等于初始值的非静态数据成员,则按照8.5中的规定初始化该实体;
  • 否则,如果实体是变体成员(9.5),则不执行初始化;
  • 否则,实体默认初始化(8.5).

第9.4.2节还允许非const静态成员的类内初始化,如果它们用说明constexpr符标记的话.

那么我们在C++ 03中受到限制的原因究竟发生了什么?我们只是简单地接受"复杂的链接器规则"或者是否有其他改变使得这更容易实现?

c++ initialization class class-members c++11

80
推荐指数
3
解决办法
9万
查看次数

声明一个有两种类型的变量:"int char"

我是C++初学者,我正在阅读Bjarne Stroustrup的编程:使用C++的原理和实践.

3.9.2"不安全转换 "一节中,作者提到了

当初始化程序是整数文字时,编译器可以检查实际值并接受不暗示缩小的值:

int char b1 {1000};     // error: narrowing (assuming 8-bit chars)
Run Code Online (Sandbox Code Playgroud)

我对这个宣言感到困惑.它使用两种类型(intchar).我以前从未在Java和Swift中看过这样的声明(我比较熟悉的两种语言).这是拼写错误还是有效的C++语法?

c++ initialization type-conversion narrowing uniform-initialization

80
推荐指数
4
解决办法
5970
查看次数

如何在Swift中为UIViewController子类创建自定义初始化程序?

如果之前有人问过这个问题,我已经进行过很多搜索,而且当事情不同时,很多答案来自早期的Swift测试版.我似乎无法找到明确的答案.

我想要子类UIViewController并拥有一个自定义初始化程序,以便我可以轻松地在代码中进行设置.我在Swift中遇到这个问题很困难.

我想要一个init()可以用来传递特定的函数,NSURL然后使用视图控制器.在我看来它看起来像init(withImageURL: NSURL).如果我添加该功能,则会要求我添加该init(coder: NSCoder)功能.

我相信这是因为它在超类中用required关键字标记?所以我必须在子类中做到这一点?我添加它:

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}
Run Code Online (Sandbox Code Playgroud)

怎么办?我的特殊初始化程序是否被认为是convenience一个?指定的一个?我打电话给超级初始化器吗?来自同一类的初始化器?

如何将我的特殊初始化程序添加到UIViewController子类中?

initialization uiviewcontroller swift

79
推荐指数
4
解决办法
5万
查看次数

Swift:自定义ViewController初始化程序

如何UIViewController在Swift中为子类添加自定义初始值设定项?

我创建了一个UIViewController看起来像这样的子类:

class MyViewController : UIViewController
{
    init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
    {
        self.leftVC = leftVC;
        self.rightVC = rightVC;
        self.gap = gap;

        super.init();

        setupScrollView();
        setupViewControllers();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一个致命的错误:

致命错误:对类'MyApp.MyViewController'使用未实现的初始化程序'init(nibName:bundle :)'

我已经读过,在添加自定义初始化程序时,还必须覆盖,init(coder aDecoder:NSCoder)所以让我们覆盖它init,看看会发生什么:

override init(coder aDecoder: NSCoder)
{
    super.init(coder: aDecoder);
}
Run Code Online (Sandbox Code Playgroud)

如果我添加这个,Xcode会抱怨self.leftVC is not initialized at super.init call.所以我想这也不是解决方案.所以我想知道如何将自定义初始化器正确地添加到ViewControllerSwift中的子类中(因为在Objective-C中这看起来不是问题)?

initialization objective-c uiviewcontroller ios swift

78
推荐指数
4
解决办法
5万
查看次数