powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / возврат объекта через конструктор копии
25 сообщений из 29, страница 1 из 2
возврат объекта через конструктор копии
    #38426257
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток.
Возникла необходимость возврата объекта по значению.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
#include "stdafx.h"
#include <cstring>
#include <cstdlib>
#include <iostream>

using namespace std;

class sample
{
	char* s;
public:
	sample();
	sample(const sample& obj);
	~sample();
};

sample::sample()
{
	cout << "Simple constructor \n"; 
	s = new char;
	strcpy(s,"uerynvus");
}

sample::sample(const sample& obj)
{
	cout << "Copy constructor \n";
	char* s = new char;
	*s = *obj.s;
}

sample::~sample()
{
	cout << "Destructor. \n";
	if(s) delete [] s; 
}

sample input()
{
	sample str;
	return str;
}

int _tmain(int argc, _TCHAR* argv[])
{
	sample ob;
	ob = input();

	return 0;
}



вот схема реализации.
может кто сказать где ошибка?
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426352
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnix,

Вообще, ошибка наверное в ДНК, но появляться это в данном случае тут:

s = new char;
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426358
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, это не единственная ошибка ...
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426365
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Это академическая задача из учебника. Просто было интересно как ответят на нее местные "зубры".
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426366
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По ответу все понятно.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426398
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixЭто академическая задача из учебника. Просто было интересно как ответят на нее местные "зубры".

Не понял, это РЕАЛИЗАЦИЯ из учебника, или только задача ?
Код чей ? Из учебника ?
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426401
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixПо ответу все понятно.

Тебе вообще чё надо-то? А ?
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426409
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

и задача и код из учебника.
А вот ответы на русскоязычных форумах просто впечатляют.
Если на англоязычных форумах задаешь вопрос, то тебе по делу отвечают или честно говорят что не знаем.
На наших форумах если нет возможности выпендриваться то скажут что ты идиот ну или что-то похожее.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426415
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

А задача на самом деле очень реальная. Возврат объекта по значению.
Просто было интересно как медленно будут соображать местные "зубры" прежде чем дадут правильный ответ.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426421
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixMasterZiv,

и задача и код из учебника.
А вот ответы на русскоязычных форумах просто впечатляют.
.

Не верю. дай ссылку на учебник.

lnixЕсли на англоязычных форумах задаешь вопрос, то тебе по делу отвечают или честно говорят что не знаем.
На наших форумах если нет возможности выпендриваться то скажут что ты идиот ну или что-то похожее.

Мне отвечать на дурацкие вопросы просто так скучно.
Я тебе показал на строку, где ошибка. Думай, в чём она заключается.
Подумаешь, пришлёшь ответ, я тебе укажу на другую.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426431
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivlnixMasterZiv,

и задача и код из учебника.
А вот ответы на русскоязычных форумах просто впечатляют.
.

Не верю. дай ссылку на учебник.

lnixЕсли на англоязычных форумах задаешь вопрос, то тебе по делу отвечают или честно говорят что не знаем.
На наших форумах если нет возможности выпендриваться то скажут что ты идиот ну или что-то похожее.

Мне отвечать на дурацкие вопросы просто так скучно.
Я тебе показал на строку, где ошибка. Думай, в чём она заключается.
Подумаешь, пришлёшь ответ, я тебе укажу на другую.

"Думай в чем она заключается" означает только одно - я не знаю как это решить. Все остальное мешура.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426448
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnix"Думай в чем она заключается" означает только одно - я не знаю как это решить. Все остальное мешура.Мишура
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426456
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшlnix"Думай в чем она заключается" означает только одно - я не знаю как это решить. Все остальное мешура.Мишура

Можно и так (и это правильно). Хотя данном случае это не принципиально.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426581
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixХотя данном случае это не принципиально.
В данном случае принципиально то, что возврат объекта по значению - чисто теоретическая
задача. На практике за неё отрывают руки те, кто заботится о производительности. А те, кто
о ней не заботятся, пишут на чём угодно кроме С++.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426669
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnix,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
#include "stdafx.h"
#include <cstring>
#include <cstdlib>
#include <iostream>

using namespace std;

class sample
{
	char* s;
public:
	sample();
	sample(const sample& obj);
        sample& operator=(const sample& obj);
	~sample();
};

sample::sample() : s(0)
{
	cout << "Simple constructor \n"; 
	s = new char[strlen("uerynvus")+1];
	strcpy(s,"uerynvus");
}

sample::sample(const sample& obj) : s(0)
{
	cout << "Copy constructor \n";
        s = strcpy(new char[strlen(obj.s)+1], obj.s);
}

sample& sample::operator=(const sample& obj)
{
	cout << "Assign operator \n";
        if( &obj != this ) {
          delete [] s;
          strcpy(s = new char[strlen(obj.s)+1], obj.s);
        }
}

sample::~sample()
{
	cout << "Destructor. \n";
	delete [] s; 
}

sample input()
{
	sample str;
	return str;
}

int _tmain(int argc, _TCHAR* argv[])
{
	sample ob;
	ob = input();

	return 0;
}
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426751
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широковlnix,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
#include "stdafx.h"
#include <cstring>
#include <cstdlib>
#include <iostream>

using namespace std;

class sample
{
	char* s;
public:
	sample();
	sample(const sample& obj);
        sample& operator=(const sample& obj);
	~sample();
};

sample::sample() : s(0)
{
	cout << "Simple constructor \n"; 
	s = new char[strlen("uerynvus")+1];
	strcpy(s,"uerynvus");
}

sample::sample(const sample& obj) : s(0)
{
	cout << "Copy constructor \n";
        s = strcpy(new char[strlen(obj.s)+1], obj.s);
}

sample& sample::operator=(const sample& obj)
{
	cout << "Assign operator \n";
        if( &obj != this ) {
          delete [] s;
          strcpy(s = new char[strlen(obj.s)+1], obj.s);
        }
}

sample::~sample()
{
	cout << "Destructor. \n";
	delete [] s; 
}

sample input()
{
	sample str;
	return str;
}

int _tmain(int argc, _TCHAR* argv[])
{
	sample ob;
	ob = input();

	return 0;
}



Просто блеск...
Ну есть же спецы нормальные у нас...
Почему же Вы все прячетесь?!
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426752
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovlnixХотя данном случае это не принципиально.
В данном случае принципиально то, что возврат объекта по значению - чисто теоретическая
задача. На практике за неё отрывают руки те, кто заботится о производительности. А те, кто
о ней не заботятся, пишут на чём угодно кроме С++.


Касаемо вышесказанного полностью согласен, но уж так подмывало меня опубликовать эту задачу.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426867
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovlnixХотя данном случае это не принципиально.
В данном случае принципиально то, что возврат объекта по значению - чисто теоретическая
задача. На практике за неё отрывают руки те, кто заботится о производительности. А те, кто
о ней не заботятся, пишут на чём угодно кроме С++.


Это ты глубоко неправ.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426872
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixПросто блеск...
Ну есть же спецы нормальные у нас...
Почему же Вы все прячетесь?!

Пожалел тебя просто Толя...
А зря...
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426932
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivlnixПросто блеск...
Ну есть же спецы нормальные у нас...
Почему же Вы все прячетесь?!

Пожалел тебя просто Толя...
А зря...

Да нет тут жалость не при чем.
Просто у него перцатости поменьше а человеческого побольше.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426936
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivlnixПросто блеск...
Ну есть же спецы нормальные у нас...
Почему же Вы все прячетесь?!

Пожалел тебя просто Толя...
А зря...

Если внимательно будешь читать посты на которые пишешь комментарии, это чисто академическая задача, следовательно ответ мне был известен заранее, а вот к кому с вопросами обращаться если возникнут проблемы теперь совершенно определенно ясно.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38426983
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixЕсли внимательно будешь читать посты на которые пишешь комментарии, это чисто академическая задача, следовательно ответ мне был известен заранее, а вот к кому с вопросами обращаться если возникнут проблемы теперь совершенно определенно ясно.
Вообще-то MasterZiv в первом же сообщении указал на грубейную ошибку в коде, по сравнению с которой остальное не имеет значение. Т.е. он максимально конкретно и точно ответил на вопрос "где ошибка?"

А теперь давайте свой ответ
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38427080
lnix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskylnixЕсли внимательно будешь читать посты на которые пишешь комментарии, это чисто академическая задача, следовательно ответ мне был известен заранее, а вот к кому с вопросами обращаться если возникнут проблемы теперь совершенно определенно ясно.
Вообще-то MasterZiv в первом же сообщении указал на грубейную ошибку в коде, по сравнению с которой остальное не имеет значение. Т.е. он максимально конкретно и точно ответил на вопрос "где ошибка?"

А теперь давайте свой ответ

Грубейшая ошибка в том что ответить нужно было : возврат делается через перезагрузку оператора =.
Вот и весь ответ.
А все остальное это попытка прикрыть свою задницу и прикрыть свою полнейшую некомпетентность.
Компетентные люди показывают это сразу.
А натыкать пару строк дело 1-2 минут.
Короче все уже и так ясно.
Дальнейший диалог превратится о обычный треп.
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38427089
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixMasterZivпропущено...


Пожалел тебя просто Толя...
А зря...

Да нет тут жалость не при чем.
Просто у него перцатости поменьше а человеческого побольше.

У него всего ровно столько же, что и у меня.
Просто был в хорошем настроении. Так что тебе просто повезло.
Кстати, я был в плохом.

P.S. А ты топиком-то вообще чё хотел-то ?
...
Рейтинг: 0 / 0
возврат объекта через конструктор копии
    #38427091
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnixГрубейшая ошибка в том что ответить нужно было : возврат делается через перезагрузку оператора =.
Вот и весь ответ.


Этого в принципе нельзя сделать.

lnixА все остальное это попытка прикрыть свою задницу и прикрыть свою полнейшую некомпетентность.
Компетентные люди показывают это сразу.
А натыкать пару строк дело 1-2 минут.
Короче все уже и так ясно.
Дальнейший диалог превратится о обычный треп.

Походу, ты нихрена так и не понял.
Ну что ж...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / возврат объекта через конструктор копии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]