首页 > 试题广场 >

假设baseDMA ::operator=()函数的返回类型

[问答题]

假设baseDMA ::operator=()函数的返回类型为void,而不是baseDMA &,这将有什么后果?如果返回类型为baseDMA,而不是baseDMA &,又将有什么后果?

推荐
如果返回的类型为void,仍可以使用单个赋值,但不能使用连锁赋值:
baseDMA magazine("Pandering to Glft2", 1);
baseDMA gift1, gift2, gift3);
gift1 = magazine;             // ok
gift2 = gift3 = gift1;          // no longer valid
如果方法返回一个对象,而不是引用,则该方法的执行速度将有所减慢,这是因为返回语句需要复制对象。
发表于 2018-09-03 20:52:56 回复(0)