下面的 C++ 代码有效。
#include<iostream>
using namespace std;
class Complex{
private:
int real, imag;
public:
Complex(int r=0, int i=0){
real = r; imag = i;
}
};
int main()
{
Complex c1(10, 5), c2(2, 4);
Complex c3;
}
当参数化构造函数的变量r
和i
未初始化时(例如:)Complex(int r, int i)
,编译器会抛出错误
main.cpp:19:13: 错误:没有匹配函数调用'Complex::Complex()' 19 | 复合物c3;| ^~ main.cpp:10:5: 注意:候选:'Complex::Complex(int, int)' 10 | 复杂(int r,int i){ | ^~~~~~~。
我理解这是声明的一个问题Complex c3;
。请原谅我的幼稚,但尚不清楚为什么它在初始代码片段本身中以这种方式工作。希望有人能澄清这一点。