作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
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/
我是一名优秀的程序员,十分优秀!