【发布时间】:2021-10-16 05:01:16
【问题描述】:
我必须创建一个使用显式构造函数将 int 类型转换为现有类的代码。
class MyClass
{public:
MyClass(int& obj); //I tried to use a syntax similar to a copy construct
}
int a;
MyClass a();
【问题讨论】:
-
这不是显式构造函数。为什么它需要非常量引用? en.cppreference.com/w/cpp/language/explicit
-
另外,
MyClass a();应该是MyClass myclass{a}; -
在提出问题之前,最好先阅读一本书以了解一些基础知识(或查看您的课程笔记);顺便说一句,
MyClass a();会声明一个名为a的函数,如果调用该函数,它将返回一个MyClass类型的对象。它不会像你想象的那样构造一个对象:Most vexing parse. -
我明白了:1) 问题本身缺少问题,2) 缺少
explicit构造函数,以及 3) 没有尝试从int构造类。您可能会急于求成,在了解它们是什么之前尝试使用某些工具。
标签: c++ class constructor