【发布时间】:2014-02-02 02:14:17
【问题描述】:
我有一个简单的 c++ 类向量,它的参数构造函数如下:
Vector::Vector(int size){
...
}
基于此实现,以下行是有效的:
Vector v(1);
Vector v2(94);
我的问题是我正在测试我的代码,我发现这也是有效的:
Vector v = 1;
它以某种方式调用了参数构造函数。我还重载了 operator = 但在这种情况下它从未被调用过。这是 c++ 中的正常行为吗?编译器如何将上述赋值视为Vector v(1)?我在 Xcode 5.0(LLVM 编译器)中这样做
【问题讨论】:
-
直接初始化和复制初始化。