【问题标题】:What is going on at the top of this function这个函数顶部发生了什么
【发布时间】:2009-12-15 14:24:19
【问题描述】:

我目前正在查看一个函数示例,我似乎无法在 Visual C++ 中使用 MFC。函数如下

CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}

除了mOSG(0L) sn-p,我了解这里的所有内容。 mOSG 在 MFC_OSG _MDIView 类中声明如下:

cOSG* mOSG;

【问题讨论】:

  • 感谢大家的帮助!我在大学里学过 C++,但不记得听过或读过任何关于初始化列表的东西。再次感谢您的及时帮助:)

标签: c++ visual-c++ mfc initialization


【解决方案1】:
CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L)
{
}

上面是一个构造函数,用于一个名为CMFC_OSG_MDIView 的类。 :mOSG(0L) 称为initializer list,在创建对象时执行。 init-list 在构造函数体之前被调用,它是正确初始化成员变量的地方。

【讨论】:

    【解决方案2】:

    这是一个初始化器 - mOSG 被初始化为 0L。当控件进入构造函数体时mOSG已经被初始化了。

    请参阅this question,了解为什么在构造函数内部使用初始化器而不是赋值。

    【讨论】:

      【解决方案3】:

      0L 指定一个值为 0 的长整数。所以这会用 0 初始化类成员 mOSG

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 2018-05-12
        • 1970-01-01
        • 2017-09-09
        • 1970-01-01
        相关资源
        最近更新 更多