我正在C++中学习OOP,并且知道我们可以显式调用构造函数,如下所示:
var obj = var(); // Assume var is a class and obj is an instance of an object of the class var.
据我所知, var()构造函数实例化一个临时对象,对其进行初始化,然后将其发送,以便对象 obj 复制其内容。现在我有两个疑问:
最佳答案
用于创建对象的语法类似于调用函数的语法,但是它们是不同的。您不能调用构造函数。
在C++ 17中,甚至没有两个对象。临时值var()
实现为obj
。
关于c++ - 为什么在没有返回类型的情况下显式调用构造函数时会返回一个临时对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64659464/