关于构造函数括号能否省略的有关问题

关于构造函数括号能否省略的问题
#include <iostream>
using namespace std;

class Clock{
int hour,minute,second;
public:
        Clock();
        Clock(int,int,int); 
void move(int);
void move(int,int);
void show();
};

Clock::Clock()
{
   hour=0;minute=0;second=0;
}

Clock::Clock(int h,int m,int s)
{
hour=h;minute=m;second=s;

}

void Clock::move(int h)
{
     hour=h+hour;
 if(hour>24) hour=hour-24;
}

void Clock::move(int h,int m)
{
     hour=h+hour;
 minute=m+minute;
 if(minute>=60) 
 {
       minute=minute-60;
   hour++;
 } 
 if(hour>24) hour=hour-24;
}

void Clock::show()
{
cout<<"时间是"<<hour<<":"<<minute<<":"<<second<<endl;

}


int main()
{
Clock myclock,yourclock(19,54,26);//为何不能够写成Clock myclock()加括号
myclock.show();//为何不能写成myclock.show不加括号
yourclock.show();
myclock.move(8);
myclock.show();
yourclock.move(7,30);
yourclock.show();
system("pause");

}

------解决思路----------------------
Clock myclock,yourclock(19,54,26);//为何不能够写成Clock myclock()加括号
因为Clock yourclock(19,54,26);是声明并初始化一个类的实例
如果构造函数有全部的初始化缺省值,可以不带逗号列表,但楼主函数定义没有做到。
Clock::Clock(hour=0;minute=0;second=0;)
{
}

------解决思路----------------------
首先第一个:Clock myclock,yourclock(19,54,26);//为何不能够写成Clock myclock()加括号
你这一步如果加括号那就是试图显式调用默认构造函数,C++中显式调用默认构造函数有特定语法
       可以是Clock myclock = Clock(); 
                   Clock* clock = new Clock();
                   Clock myclock =Clock::Clock();
加上括号不符合c++默认构造函数调用方法,就这么简单,第二个可以加括号是因为你调用的不是默认构造函数。
第二个:myclock.show();//为何不能写成myclock.show不加括号
哥,你见过不写括号的函数调用?show()是类中的函数,函数调用最基本的不都要加括号?当然特殊情况除外,比如windows编程中的一些宏函数,但就这里而言,一个普通的类成员函数就要这样