關(guān)于構(gòu)造函數(shù)的調(diào)用順序問題
第一次運(yùn)行時(shí),構(gòu)造函數(shù)的順序不應(yīng)該是下面的樣子嗎?老師的執(zhí)行結(jié)果怎么Circle()在Coordinate()前了?!
Shape()
Rect()
Shape()
Coordinate()
Circle()
第一次運(yùn)行時(shí),構(gòu)造函數(shù)的順序不應(yīng)該是下面的樣子嗎?老師的執(zhí)行結(jié)果怎么Circle()在Coordinate()前了?!
Shape()
Rect()
Shape()
Coordinate()
Circle()
2016-05-24
舉報(bào)
2016-08-05
不是這樣的,和其他沒關(guān)系,這個(gè)主要看你 ? 構(gòu)造函數(shù)Circle() ? ?中代碼寫的順序
Circle::Circle(double r)
{
cout << "構(gòu)造函數(shù) Circle::Circle(double r)" << endl;//在前
m_dv = r;
m_pCenter = new Coordinate(3, 5);
}
這樣就先輸出了 Circle()
Circle::Circle(double r)
{
m_dv = r;
m_pCenter = new Coordinate(3, 5);
cout << "構(gòu)造函數(shù) Circle::Circle(double r)" << endl;//在后
}
這樣就先輸出了?Coordinate
2016-08-05
不是這樣的,和其他沒關(guān)系,這個(gè)主要看你 ? 構(gòu)造函數(shù)Circle() ? ?中代碼寫的順序
Circle::Circle(double r)
{
cout << "構(gòu)造函數(shù) Circle::Circle(double r)" << endl;//在前
m_dv = r;
m_pCenter = new Coordinate(3, 5);
}
這樣就先輸出了 Circle()
Circle::Circle(double r)
{
m_dv = r;
m_pCenter = new Coordinate(3, 5);
cout << "構(gòu)造函數(shù) Circle::Circle(double r)" << endl;//在后
}
這樣就先輸出了?Coordinate
2016-07-31
這個(gè)問題我也很迷惑,感覺跟這一節(jié)的內(nèi)容有點(diǎn)矛盾http://idcbgp.cn/video/8136
2016-05-24
我覺得不是,如果一個(gè)類中有對(duì)象成員,那么在構(gòu)造這個(gè)類的對(duì)象時(shí),會(huì)先執(zhí)行對(duì)象成員所在類的構(gòu)造函數(shù),然后才會(huì)執(zhí)行此類的構(gòu)造函數(shù)。
2016-05-24
應(yīng)該先實(shí)例化Circle()再實(shí)例化Coordinate(),你看看Circle()里面包含了Coordinate()