使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: member:1 member:10 member:100 注意:错误的语句在/********error**

admin2021-09-05  22

问题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:
    member:1
    member:10
    member:100
    注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。
    试题程序:
#include
int i=100:
class TC
{
public:
TC(int i)
{
cout<<"member:"<{********error汝*******|
i=i+9:
  }
  void Print()const
  {
eout<<"member:"<}
private:
int i;
};
void main()
{
  /********error********/
  TC obj;
  int i(0);
  obj.Print();
  /********error********/
  cout<<"member:"<  return;
}

选项

答案(1)“i=i+9;”应改为“this-)i=i+9;(*this).i=i+9;或TC::i=i+9;”。 (2)“TC obj;”应改为“TC obj(1);”。 (3)“cout<<"member:"<
解析 本题考查了考生对变量作用域的了解情况。i=i+9;语句使形参的值自增9,这样做是毫无意义的,因为形参变量值在函数结束后不会被保存。所以等号左边的变量i应引用为TC的私有成员变量,将私有成员初始化为形参i+9的值,可以通过this指针来引用,也可以通过域作用符“::”。“TC obj;”语句会产生一条编译错误,因为TC类已经定义了一条TC(int i)构造函数,C++就不会为其自动生成默认构造函数了。这就意味着,要创建TC类的对象必须带有一个int型构造函数参数。该构造函数中的第1条就是输出语句。从输出了形参i的内容来看,这个构造参数应该为1。
    “cout<<"member:"<
转载请注明原文地址:https://kaotiyun.com/show/Sb5p777K
0

最新回复(0)