使用VC6打开考生文件夹proj3下的工程proj3,其中定义了一个字符串变量类StringVar。类成员的说明在程序注释中。请在//**********333**********和//**********666**********之间填写StringVa

admin2021-05-06  52

问题 使用VC6打开考生文件夹proj3下的工程proj3,其中定义了一个字符串变量类StringVar。类成员的说明在程序注释中。请在//**********333**********和//**********666**********之间填写StringVar成员函数和友元函数的实现代码。在main函数中给出了一组测试数据,运行时输入:
  Hello Kitty
  此情况下程序的输出应该是:
  Hello Kitty
  Borg
  Borg
  注意:只需在//**********333**********和//**********666**********之间填入所编写的若干语句,不要改动程序中的其他内容。
//StringVar.h
#include
#include
#include
#include
USing namespace std;
void  writeToFile  (const  char  *
path);
class StringVar
{   
public:
  StringVar(int size);//构造函数,size为字符串长度(字符个数)初始值;字符串内容初始化为空串
StringVar(const char a[]);//构造函数,用参数数组a的内容初始化当前对象
    StringVar  (const  StringVar&strobj);//复制构造函数
  一StringVar(){delete[]value;
};//析构函数
  int length()const{return Strlen
(value);)
  //从输入流ins输入一个字符串,其中可以包括空格
  void input_line(istream&ins);
  //返回字符串首地址
  char*getValue()const{return
value;}
private:
  char*value,//字符串首地址
  int max_length;//字符串最大长度(字符
个数最大值)
};
//将the_string通过输出流outs输出
ostream&operator<<(ostream&outs,const
StringVar the_string);
//main.cpp
#include
#include
#include”StringVar.h”
//*********333*********
//*********666*********
int main()
{
    StringVar namel(30),name2(”
Borg”);
  namel.input_line(cin);
  StringVar name3(name2);
  cout<  cout<  cout<  writeToFile(”.\\”);
  return 0;
    }
    //writeToFile.cpp
    #include
    #include
    #include
    #include
    using namespace std;
    #include”StringVar.h”
    void writeToFile(const char*path)
    {
  char filename[30];
  strcpy(filename,path);
  strcat(filename,”out.dat”);
  ofstream fout(filename);
  istringstream  is(string(”Jenny
Zheng”));
    StringVar namel(40),name2(”
  John”);
  name1.input_line(is);
  StringVar name3(name2);
  fout<  fout.close();
}

选项

答案StringVar::StringVar(int size):max length(size)//使用成员初始化列表初始化 max_length { value=new char[size]; value[0]=’\0’; } StringVar::StringVar(const char a []) { max_length=strlen(a)+1; value=new char[max_length]; strcpy(value,a), } StringVar:: StringVar (const StringVar&strobj) { max_length=strobJ.max_length; value=new char[strlen(strobj. value)+1]; strcpy(value,strobj.value); } void StringVar::input_line(istream& ins) { int i=0; char ch; while(i
解析
转载请注明原文地址:https://jikaoti.com/ti/zBh0FFFM
0

最新回复(0)