在对象实例化时C++如何声明声明和构造函数?

在对象实例化时C++如何声明声明和构造函数?,c++,C++,我的问题是, 1编译器是否实际执行此转换? 2如果是,是否有办法看到这些转变 谢谢 1编译器是否实际执行此转换 没有 首先,这不是声明。这是定义。定义后,类实例立即使用其构造函数之一初始化 编译器不会将定义转换为声明和构造函数调用。这正是定义所包含的内容。在预处理时,该定义保留为定义。在编译时,它被编译成一系列指令,为实例分配空间并调用构造函数 2如果是,是否有办法看到这些转变 不可以。您只能在汇编代码中观察构造函数调用,这可能是您不想查看的 1编译器是否实际执行此转换 没有 首先,这不是声明。

我的问题是, 1编译器是否实际执行此转换? 2如果是,是否有办法看到这些转变

谢谢

1编译器是否实际执行此转换

没有

首先,这不是声明。这是定义。定义后,类实例立即使用其构造函数之一初始化

编译器不会将定义转换为声明和构造函数调用。这正是定义所包含的内容。在预处理时,该定义保留为定义。在编译时,它被编译成一系列指令,为实例分配空间并调用构造函数

2如果是,是否有办法看到这些转变

不可以。您只能在汇编代码中观察构造函数调用,这可能是您不想查看的

1编译器是否实际执行此转换

没有

首先,这不是声明。这是定义。定义后,类实例立即使用其构造函数之一初始化

编译器不会将定义转换为声明和构造函数调用。这正是定义所包含的内容。在预处理时,该定义保留为定义。在编译时,它被编译成一系列指令,为实例分配空间并调用构造函数

2如果是,是否有办法看到这些转变


不可以。您只能在汇编代码中观察构造函数调用,这可能是您不想查看的。

我有点喜欢不时查看汇编。它有时会给你一些想法,你可以在哪里收紧源代码。不像以前我们在洞穴墙壁上绘制代码时那样多,但它仍然具有教育意义。我有点喜欢不时地查看组装。它有时会给你一些想法,你可以在哪里收紧源代码。不像我们在洞穴墙壁上绘制代码时那样多,但它仍然具有教育意义。
class C {  
public:  
    int i = 0;  
    C() {i++;}  
};

int main()  
{
    C c;  
    // This simple statement could be interpreted something like,            
    // C c;  --> declaration                                                                                                                                                              
    // C::C(&c); -> constructor call                                                                                                                                                      
    return 0;
}