c++ 的三个程序改错题

2025-01-07 19:42:31
推荐回答(2个)
回答1:

2、题目的意思应该是打印字符串,忘了加双引号。
3、私有继承,父类的方法对派生类是不可见的,不能访问
4、c++++ 调用 operator++(int) 函数,函数返回值是 complex
因此表达式等价于

complex temp =c++;
temp++;
修改temp值与c无关,所有c只加一次

把operator++(int) 返回值由 complex 改成 complex & 就行

回答2:

2)func不是静态函数,所以不能通过Test::func这种方式使用,可改为
cout<<"Test::func()"<
3)class B为私有继承,所以class B的对象不能范围A的任何成员以及成员函数。obj.setA和showA
的调用是错误的。
3)Complex& operator++(int) { ++real; return *this;}
如果不用引用,第二次++用的将是第一次++返回的临时对象