Форум программистов, компьютерный форум CyberForum.ru

ООП перегрузка в классе! - C++

Восстановить пароль Регистрация
 
softrix
0 / 0 / 0
Регистрация: 05.04.2008
Сообщений: 48
13.04.2008, 19:45     ООП перегрузка в классе! #1
Помогите решить:

Нужно сделать чтобы корректно работало следующее:
1. MyString s1("AAA"), s2;
2. s2=
"VVV";

С первым все ок, а второе глючит, вызывается каждый раз деструктор и ничего не заностися

Вот конструктор:

MyString::MyString( constchar* pStr )
{
m_pStr = newchar[strlen( pStr ) + 1];
strcpy( m_pStr, pStr );

}

Как реализовать второй пункт не понятно. Помогите разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2008, 19:45     ООП перегрузка в классе!
Посмотрите здесь:

C++ Перегрузка оператора ==, в классе Матрица
C++ Перегрузка функций в классе
C++ ООП перегрузка операторов
C++ Перегрузка операторов в классе
C++ Перегрузка операторов в классе
C++ Перегрузка операции < в классе
Перегрузка оператора '=' в классе C++
Перегрузка в классе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SVEN
 Аватар для SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
14.04.2008, 17:56     ООП перегрузка в классе! #2
Код
[SIZE=2][COLOR=#0000ff]
#include[/COLOR][/SIZE][SIZE=2][COLOR=#800000]<cstring>
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]class[/COLOR][/SIZE][SIZE=2] MyString
{
[/SIZE][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][SIZE=2]* m_pStr;
[/SIZE][SIZE=2][COLOR=#0000ff]public[/COLOR][/SIZE][SIZE=2]:
MyString([/SIZE][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][SIZE=2]* pStr )
{
m_pStr = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][SIZE=2][strlen( pStr ) + 1]; 
strcpy(m_pStr, pStr);
}
~MyString()
{
[/SIZE][SIZE=2][COLOR=#0000ff]delete[/COLOR][/SIZE][SIZE=2] [] m_pStr;
}
MyString()
{
m_pStr=[/SIZE][SIZE=2][COLOR=#800000]'\0'[/COLOR][/SIZE][SIZE=2];
}
};
MyString s2;
MyString s3=[/SIZE][SIZE=2][COLOR=#800000]"VVV"[/COLOR][/SIZE][SIZE=2];
[/SIZE]
Для реализации второго пункта ты не должна присваивать уже созданному объекту нового значения, просто создавай новый объект с нужным значением! И добавь в свой класс конструктор по умолчанию как в примере--совет.
Linear
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 6
11.05.2014, 14:39     ООП перегрузка в классе! #3
реализуйте конструктор копирования и оператор =
Yandex
Объявления
11.05.2014, 14:39     ООП перегрузка в классе!
Ответ Создать тему
Опции темы

Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru