我们可以把数字当最对象赋给另一个对象,这样在对该赋值表达式进行计算时,首先对数字进行类型转换,同时判断该类的构造函数的参数是否与数字类型匹配,假如匹配则调用构造函数创建一个临时对象,跟着将该临时对象赋给赋值操作符左边的对象,最后调用析构函数进行删除临时对象。
示例代码如下:
#includeusing namespace std; class A { public: A(int x){i=x;cout<<"构造函数执行! "< >>>>>>>>>>>>>>>>>>>>>>\n"< >>>>>>>>>>>>>>>>>>>>>>\n"<
运行结果:
本示例有两次类型转换。第一次是“a=100”,该语句调用构造函数将100转换为A类的临时对象,然后将这个对象赋给对象a,跟着调用析构函数释放临时对象占用的内存。
第二次是“a=A(2)”,等号右边的A(2)是一个强制类型表达式,这个表达式会调用A类构造函数,将括号内的2转换成A类的临时对象,然后再赋给左边的对象a,跟着调用析构函数释放临时对象占用的内存。
