首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何初始化和构造成员变量?

如何初始化和构造成员变量?
EN

Stack Overflow用户
提问于 2022-07-06 14:46:52
回答 1查看 108关注 0票数 -2

当一个对象被实例化时,成员变量会发生什么?这些是台阶吗?

成员变量的空间在instantiated

  • Memory中被调用,成员变量是intialized.

  • During构造函数的执行,成员变量的构造是幕后调用的。

这就是成员变量发生的情况吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-06 15:31:12

也许最好用一个例子来解释:

代码语言:javascript
运行
复制
class Y
{
public:
    Y(int value) {...}
};

class X
{
public:
    X(int value1, value2): member1(value1), member2(value2) {......}
    Y member1, member2;
};

int main()
{
    auto object = new X(3, 4);
}

执行从main开始。newclass X的一个实例分配空间,其中包括两个class Y实例的空间。然后,main使用一个隐藏参数(指向此分配内存的指针)和两个整数参数调用构造函数X::X。此构造函数为每个成员调用构造函数Y::Y两次。然后执行X::X的主体(在我的示例中包含...... )。

每次Y::Y构造函数退出时,class X的对应成员都被初始化和构造(形式上,它的启动)。

X::X构造函数退出时,将初始化和构造object (其生存期开始)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72885601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档