class AA{.........}
class BB:public AA
{
BB(const BB &object)
{
AA(object);//错误
}
}
上面这一个就会出现:object重定义。
class AA{.........}
class BB:public AA
{
BB(const BB &object):AA(object)//正确
{
}
}
原因:
第一种写法是一个语句,编译器会解释为变量声明,因此会与_obj重名
第二种写法是形参列表,不存在表达式、声明二义性