问一个C++的题目

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:12:50
题目:以下程序的输出结果为:
调用构造函数
text=abcdef
调用析构函数
要求:不可以增加或删除程序行,也不可以更改程序的结构。
注意:错误在/***********FOUND***********/提示行下面,每个提示行下面有一个错误。

#include<iostream.h>

/***********FOUND***********/
#include<string.h >
class string
{
private:
/***********FOUND***********/
char text;
public:
string(char *ch)
{
text=new char[strlen(ch)+1];
strcpy(text,ch);
cout<<"调用构造函数"<<endl;
}
/***********FOUND***********/
String()
{
delete[] text;
cout<<"调用析构函数"<<endl;
}
/***********FOUND***********/
void print(){cout<<"text="<<text<<endl;}
}:
void main()
{
string string("abcdef");
string.print();
}

#include<iostream.h>

/***********FOUND***********/
#include<string.h >
class string
{
private:
/***********FOUND***********/
char *text; //是字符指针类型 不是char类型
public:
string(char *ch)
{
text=new char[strlen(ch)+1]; //因为这里返回的是字符数组指针
strcpy(text,ch);
cout<<"调用构造函数"<<endl;
}
/***********FOUND***********/
string() //string中的s是小写不是大写
{
delete[] text;
cout<<"调用析构函数"<<endl;
}
/***********FOUND***********/
void print()
{
cout<<"text="<<text<<endl;
}
};//是;号不是:号
void main()
{
string string("abcdef");
string.print();
}