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

admin2013-11-15  24

问题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出为
    10
    TC1
    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//* * * * * * * * error* * * * * * * *的下面。
    试题程序:
#include(iostream)
class TC1
{
public:
TC1()
{
}
//* * * * * * * * error* * * * * * * *
private:
virtual~TC1()
{
  using namespace std;
  cout<<"TC1"<  }
};
class TC2:public TC1
{
public:
//* * * * * * * * error* * * * * * * *
explicit TC2(int i)
{
  m i=i:
}
TC2&operator()(int i)
{
this->m_i=i;
}
void print()
{
//* * * * * * * * error* * * * * * * *
    cout<}
private:
int m_i;
};
void fun(TC2 C1)
{
C1.print();
}
int main()
{
fun(TC2(10));
return 0;
}

选项

答案(1)删除“private:”语句。 (2)应改为“TC2(int i)”。 (3)应改为“std::cout<
解析 本题中第1处的“virtual~TC1()”语句是TC1析构函数,不是私有函数,所以删除“private:”。“explicit TC2(int i)”构造函数语句中的“explicit”是禁止隐式转换。程序中无法实现对类TC2的直接使用,所以这里应该将其删除。即“TC2(int i)”o在第3处实现fun函数中m_i的标准输出,即在屏幕上输出10。在程序中用到C++标准库时,要使用std标准命名空间进行限定。cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即“std::cout<
转载请注明原文地址:https://kaotiyun.com/show/IXNp777K
0

最新回复(0)