![]() |
|
Модераторы: bsa |
![]()
|
|
| rocky7 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Почему ругается компилятор?
Ниже привожу функцию
Модератор: Пользуйся кнопкой "Код" Это сообщение отредактировал(а) bsa - 12.2.2009, 21:11 |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
rocky7, По ходу, у Signal не перегужен operator=(T Signal).
Смотри декларацию Signal. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| rocky7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Вот так у меня описан TSignal
#ifndef tsignalH #define tsignalH #include "tmessage.h" class TSignal:virtual public TMess { protected: int len; short *str; int CarrierFreq; public: TSignal() // стандартный конструктор { len=0;str=0;CarrierFreq=0; } TSignal(int,int); //TSignal(int n,const short* c,int f):TMess(n,c),CarrierFreq(f) //{n=0;c=0;f=0;} TSignal(int,const short*); ~TSignal() // деструктор { delete[] str; } int& GetLen() { return len; } int& GetCarrierFreq() {return CarrierFreq;} short* GetStr() { return str; } TSignal& operator=(TSignal&); short& operator[](int); }; |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Ты создаешь переменную в функции local, которая в момент вызова функции будет расположена в стеке, по окончанию работы функции стек очиститься и у тебя вместо local функция будет возвращать какую-нибудь "арба-кадабру". to xvr, zim22 *мне стыдно* Это сообщение отредактировал(а) Gluttton - 12.2.2009, 12:37 -------------------- Слава Україні! |
||||
|
|||||
| zim22 |
|
||||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
не согласен,что арба-кадабра будет возращена. Вот аналогичный код, в котором также создаётся автоматическая переменная, но значение из функции возвращается "нормальное"(копия x), а не мусор.
В рез-те вызова:
|
||||||
|
|||||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Вот это
2 Gluttton:
|
||||||||
|
|||||||||
| rocky7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
Описал таким способом :
TSignal& operator=(const TSignal&); Всё заработало!!! xvr, - респект!!! Буду дальше лопатить теорию. Учусь по книге Лафоре ООП на С++. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |