gpt4 book ai didi

c++ - 初始化 A(ob) 是如何工作的,其中 ob 是 A 类的对象

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:35 26 4
gpt4 key购买 nike

A 是这样定义的类:

class A
{
public:
int x;
}

主要内容:

int main()
{
A(ob); // note that copy constructor doesn't get called
ob.x = 1; // just to show that ob's members can be accessed
}

这是一个不同的 main():

int main()
{
A ob;
A ob2 = A(ob); // copy constructor gets called and everything happens as expected
}

我从未在 C++ 中见过这样的实例化。难道 A(ob) 不应该是通过调用 A 的构造函数(其中 ob 是先前声明的对象)来进行函数样式类型转换吗?

编辑:在第二个 main() 中,A(ob) 用作 ob2 的初始值设定项。

最佳答案

A(ob); 

等同于:

A ob; 

大括号是多余的。所以下面和上面一样:

A((ob)); 
A(((ob)));
A((((ob))));

都是等价的。但这并不意味着你应该写这个。只写更容易阅读的内容。

关于c++ - 初始化 A(ob) 是如何工作的,其中 ob 是 A 类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19036693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com