【发布时间】:2020-11-16 11:33:48
【问题描述】:
我尝试创建 2 个这样的类的对象
#include <iostream>
using namespace std;
class MyNum
{
private:
int m_num;
public:
MyNum(int num) : m_num{ num }
{
}
};
int main()
{
MyNum one(1);
MyNum two = 2;
}
这两行有什么区别
MyNum one(1);
MyNum two = 2;
【问题讨论】:
-
第一个叫direct initialization,另一个叫copy initialization。它们之间有细微的差别。在你的情况下,他们会做同样的事情。
-
你可能需要一本书。看这个链接的初学者列表stackoverflow.com/a/388282/4123703
-
这也有效,因为
MyNum(int num)符合converting constructor 的条件,因为它只接受一个参数并且没有标记为explicit。
标签: c++ class object constructor copy-constructor