前言:
之前很长时间没有看C++了,今天有人问我了一个关于构造参数的问题,发现自己关于构造参数这个问题并没有准确理解。
介绍:
代码很简单:
#include<iostream>
#include<stdlib.h>
using namespace std;
class A{
public:
A(int k = 0)
{
cout << k << endl;
}
};
int main()
{
A a();
system("pause");
return 0;
}
这个结果并没有输出,但是会出现警告: A a(void)”: 未调用原型函数(是否是有意用变量定义的?)
当你创建一个新的构造函数,默认的就不会创建。
现在出现的问题是当缺省参数的时候,这样并不调用的问题在哪,我虽然没有搞懂,但是我发现当你写括号的时候,不会出现其他的东西,当你不写括号的时候 会正常输出。
解决方案:
将A a() 这句话 换成A a; 就可以正常输出了