使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: TC1:0 TC2 注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//*

admin2013-10-15  12

问题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
    TC1:0
    TC2
    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//* * * * * * error * * * * * *的下面。
    试题程序:
#include
struct TC1
{
TC1(int i=0)
{
  m_i=i;
}
void print()
{
  cout<<"TC1:"<}
int m_i;
};
class TC2
{
public:
TC2()
{
}
void print()
{
  cout<<"TC2"<}
//* * * * * * * *error* * * * * * * *
private:
~TC2()
{
}
};
int main()
{
//* * * * * * * *error* * * * * * * *
TC1 obj1();
//* * * * * * * *error* * * * * * * *
  TC2 obj2();
  obj1.print();
  obj2.print();
  return 0;
}

选项

答案(1)应改为“public:”。 (2)应改为“TC1 obil(0);”或“TC1 obj1;”。 (3)应改为“TC2 obj2;”。

解析 本题第1处的“private:~TC2()”是析构函数,它不是私有的,所以这里应该删除“private:”或修改为“public:”。第2处的“TC1 obj1();”语句是定义一个TC1类型的对象obj1(),根据类TC1构造函数的定义“TC1(int i=0)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TC1 obj1(0);或TC1 obj1;”。第3处的“TC2 obj2();”语句修改为“TC2 obj2;”。
转载请注明原文地址:https://jikaoti.com/ti/VrXiFFFM
0

最新回复(0)