Saber丶Lance 发表于 2018-4-22 11:58:27

实例化一个对象时为什么没有调用默认构造函数

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;
}
其中的一段代码,程序运行后并没有调用默认构造函数,这是为什么?

Saber丶Lance 发表于 2018-4-22 12:11:06

moblie mycar

溯影 发表于 2018-4-22 12:16:30

Saber丶Lance 发表于 2018-4-22 12:11
moblie mycar

这个就对了,之前楼主写的那个方式就是相当于是
moblie(){
speed = 80;
cose = 100;
}

溯影 发表于 2018-4-22 12:21:06

本帖最后由 溯影 于 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]
查看完整版本: 实例化一个对象时为什么没有调用默认构造函数