代码:
class Time
{
public:
Time(int hour)
{
_hour = hour;
}
private:
int _hour;
};
class Date
{
public:
Date(int year, int hour)
{
_year = year;
Time t(hour);
_t = t;
}
private:
int _year;
Time _t;
};
int main()
{
Date d(2022,1);
return 0;
}
在这段代码中,_t = t;
是对成员变量 _t
调用赋值运算符,而不是拷贝构造函数。
当对象被创建时,会先通过构造函数创建成员变量 _t
的对象 t
,然后通过赋值运算符将 t
赋值给 _t
。这里没有显示的拷贝构造函数调用。