farik
02-03-2006, 06:15
Есть класс string ,помогите дописать конструктор по умолчанию, позволяющий создать строку длиной 80 символов вот код:
#include <string.h>
#include <stdio.h>
class String {
public:
~String();
String();
String(char*);
const String& operator= (char*);
const String& operator+ (char*);
operator char*();
char* GetBuffer();
private:
char* buffer;
};
String::~String(){ delete buffer; }
String::String() { buffer = 0; }
String::String(char* string)
{
buffer = new char[strlen(string)+1];
strcpy(buffer, string);
}
char* String::GetBuffer() { return buffer; }
String::operator char*() { return buffer; }
const String& String::operator= (char* string)
{
delete buffer;
buffer = new char[strlen(string)+1];
strcpy(buffer,string);
return *this;
}
const String& String::operator+ (char* string)
{
int len = strlen(buffer)+1;
char* old_buff = new char[len];
strcpy(old_buff,buffer);
delete buffer;
buffer = new char[len + strlen(string) + 1];
strcpy(buffer,old_buff);
strcat(buffer,string);
delete old_buff;
return *this;
}
int main()
{
String string;
string="I Love";
string = string + " C++";
printf("%s",string);
scanf("x");
return 0;
}
#include <string.h>
#include <stdio.h>
class String {
public:
~String();
String();
String(char*);
const String& operator= (char*);
const String& operator+ (char*);
operator char*();
char* GetBuffer();
private:
char* buffer;
};
String::~String(){ delete buffer; }
String::String() { buffer = 0; }
String::String(char* string)
{
buffer = new char[strlen(string)+1];
strcpy(buffer, string);
}
char* String::GetBuffer() { return buffer; }
String::operator char*() { return buffer; }
const String& String::operator= (char* string)
{
delete buffer;
buffer = new char[strlen(string)+1];
strcpy(buffer,string);
return *this;
}
const String& String::operator+ (char* string)
{
int len = strlen(buffer)+1;
char* old_buff = new char[len];
strcpy(old_buff,buffer);
delete buffer;
buffer = new char[len + strlen(string) + 1];
strcpy(buffer,old_buff);
strcat(buffer,string);
delete old_buff;
return *this;
}
int main()
{
String string;
string="I Love";
string = string + " C++";
printf("%s",string);
scanf("x");
return 0;
}