c++ - 为什么不调用复制构造函数?
问题描述
class MyClass{
public:
MyClass();
MyClass(const MyClass& my);
MyClass(MyClass&& my);
};
void func(MyClass my);
int main()
{
func(MyClass());
MyClass myClass(MyClass());
return 0;
}
func(MyClass())
运行良好。这里,MyClass()
是一个匿名实例。但是MyClass myClass(MyClass())
是一个函数,而不是一个对象。这里,MyClass()
是一个指向函数的指针。我认为它应该调用复制构造函数,但它没有。为什么?
*注意:myClass
如果它有空括号,我知道它是一个函数。
解决方案
推荐阅读
- java - 使用 nohup 命令 getRuntime().exec 后 java logger 找不到日志文件
- node.js - 在 MongoDB 中查找数组中至少包含 3 个条目的元素
- grafana - Grafana 向图中添加新过滤器
- python - 舍入和更新列表中的元素
- bash - 如何按属性而不是 cn 对 ldap 搜索结果进行分组。使用 bash
- go - 如何在 Windows 上正确安装 gomobile?
- javascript - 如何重置引导向导
- javascript - 如何使用后端和页码更新表中的内容
- html - 有没有办法让输入框具有响应宽度,即使它是 flex 的孩子?
- phpunit - PhpUnit 不使用字符串数字和抽象类识别 TypeError