Mr Nobody
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору distance По условию задачу нужно два конструктора, конструктор с "инициализацией" легко объеденить в один с конструктором по "умолчанию". Цитата: // Конструктор с инициализацией и по умолчанию String(const char* s = "") { init(s); } | last_wish Почему так, Цитата: а не динамическое выдиление памяти через new, malloc? Добавлено: Nightwolf1100 Посмотрите мой класс, я понимаю, у вас есть, но Цитата: #include <string.h> #include <stdio.h> class STR_LEARN { public: STR_LEARN(const char* = ""); STR_LEARN(const STR_LEARN&); ~STR_LEARN(); char* Find(const char*) const; void Insert(const char* add_str, int pos); private: char* str_; }; STR_LEARN::STR_LEARN(const char* arg) { str_ = new char[strlen(arg) + 1]; strcpy(str_, arg); } STR_LEARN::STR_LEARN(const STR_LEARN& arg) { str_ = new char[strlen(arg.str_) + 1]; strcpy(str_, arg.str_); } STR_LEARN::~STR_LEARN() { delete[] str_; } char* STR_LEARN::Find(const char* pattern) const { return strstr(str_, pattern); } void STR_LEARN::Insert(const char* add_str, int pos) { char* new_str = new char[(pos > 0 ? pos : 0) + strlen(add_str) + 1]; strncpy(new_str, str_, pos); strcat(new_str, add_str); delete[] str_; str_ = new_str; } int main() { STR_LEARN str1("Agripina a"); STR_LEARN str2 = str1; str1.Insert("with love!", 10); return 0; } | мой тоже не плох! |