实例化一个对象时为什么没有调用默认构造函数
class moblie {private:
int speed;
int cost;
public:
moblie() :speed(80), cost(100)
{
cout << "speed:" << speed << "cost:" << cost << endl;
}
~moblie(){}
};
int main()
{
moblie mycar();
system("pause");
return 0;
}
其中的一段代码,程序运行后并没有调用默认构造函数,这是为什么? moblie mycar Saber丶Lance 发表于 2018-4-22 12:11
moblie mycar
这个就对了,之前楼主写的那个方式就是相当于是
moblie(){
speed = 80;
cose = 100;
}
本帖最后由 溯影 于 2018-4-22 12:30 编辑
楼主的意思是不是这样的:
#include <iostream>
using namespace std;
class moblie {
private:
int speed;
int cost;
public:
moblie(int s = 80, int c = 100){
speed = s;
cost = c;
cout << "speed=" << speed << "cost=" << cost << endl;
}
~moblie(){}
};
int main()
{
moblie mycar;
cout << "执行完毕" << endl;
system("pause");
return 0;
}
要是直接是moblie mycar();的话,编译器会认为是一个函数的声明,估计这个楼主也是理解了
页:
[1]