Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение функции как ПОТОМ 
V
    Опции темы
archimed7592
Дата 17.12.2007, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Vetos, попробем с другой стороны: ни чего надо, а чего ты хочешь? smile

Смотри, когда ты пишешь TElement myElement(L, R); , то создаётся экземпляр класса TElement с соответствующими значениями L и R. Когда же ты пишешь TElement myDefaultElement; то ты не указываешь значения L и R. Компилятор на это и ругается. Собственно вопрос: какие значения L и R ты в этом случае подразумеваешь? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
baldina
Дата 17.12.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Проблема как раз в том что у TElement есть конструктор TElement (TElement*,TElement*), поэтому компилятор не создаёт конструктор TElement() без параметров.
Тебе надо либо завести конструктор для TElement без аргументов, что-то типа
Код

TElement() : left(NULL),right(NULL) {} 

либо завести конструктор Cos (), который вызывает TElement (TElement*,TElement*).
Судя по вот этому вызову new Cos(x,n) все-таки у тебя должен быть конструктор для Cos с аргументами. Похоже ты класс Cos просто не доделал.


Это сообщение отредактировал(а) baldina - 17.12.2007, 09:52
PM MAIL   Вверх
JackYF
Дата 17.12.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(Vetos @  17.12.2007,  00:25 Найти цитируемый пост)
TElement(TElement* L,TElement* R)<<<<<<<<<<<<<<<<Это не конструктор?

ты должен явно его вызвать. В книге ты это недочитал, советую исправить.

Код

Cos(double x,AnsiString n) : TElement(что-то, ещё что-то)
{
  x=X;
  n=N;
}




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Vetos
Дата 17.12.2007, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



Мда, я понял, но все же что-то не то.
А я могу кусок написать в одном месте а другой кусок в другом, если нет, то получается что эта проблема нерешаема.
Просто дальше мне нужно будет вызвать Sin, и чо, опять его переписать перед Cos, и так по циклу, ну как то же должно решатся такое.
 smile 


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Vetos
Дата 17.12.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



Ну вот, переписал кусочек Cos перед Sin. Тех ошибок уже нет, но когда компилятор натыкается на второй Cos то сразу ошибочка:
[C++ Error] Main.cpp(88): E2238 Multiple declaration for 'Cos'


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
archimed7592
Дата 17.12.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Vetos, привожу простой пример. Если не поймёшь - иди читать книгу.
Код

class B;
class D1;
class D2;


class B
{ };

class D1
    : public B
{
    void foo();
};

class D2
    : public B
{
    void foo();
};

void D1::foo()
{
   new D2;
}

void D2::foo()
{
   new D1;
}




--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
baldina
Дата 17.12.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата

Ну вот, переписал кусочек 


Vetos, это не именинный пирог. Есть правила. archimed7592 тебе правильный пример привел.
Сначала делаешь все объявления (обычно их в отдельный файл .h помещают), потом - реализацию (обычно в отдельном .cpp)
Там, где используешь эти классы, тебе нужны только объявления, т.е. надо включить .h - в том числе в файле реализации.

PM MAIL   Вверх
Vetos
Дата 17.12.2007, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: нет
Всего: 4



А в одном проекте никак нельзя реализовать?
Просто с си я не дружу, больше с дельфями, поэтому не смогу сделать так :(

Добавлено через 11 минут и 53 секунды
Sorry, упустил из виду сообщение archimed7592'а, все работает, значит в си тоже можно приводить описание функции, а её тело писать потом. Просто за долгие годы так привык к Дельфе, что теперь трудновасто с синтаксисом в сях, все делаю по методичке, а там таких примеров нет)
БОЛЬШОЕ СПАСИБО ВСЕМ КТО ПОМОГАЛ  smile 


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.