Работа с комплексными числами в С++
От: Billy  
Дата: 28.07.01 10:24
Оценка:
Господа, есть ли в С++ готовый написанный класс для работы с комплексными числами.
Или подскажите, где это описано в MSDN.
Re: Работа с комплексными числами в С++
От: IT Россия linq2db.com
Дата: 28.07.01 12:00
Оценка: 33 (1)
B>Господа, есть ли в С++ готовый написанный класс для работы с комплексными числами.
B>Или подскажите, где это описано в MSDN.

Класс называется 'complex'.
Подключается через файл <complex>.
В MSDN находится по ключевому слову "complex".
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Работа с комплексными числами в С++
От: bnb-real  
Дата: 01.08.02 16:12
Оценка:
Здравствуйте IT, Вы писали:

B>>Господа, есть ли в С++ готовый написанный класс для работы с комплексными числами.

B>>Или подскажите, где это описано в MSDN.

IT>Класс называется 'complex'.

IT>Подключается через файл <complex>.
IT>В MSDN находится по ключевому слову "complex".

BNB>> Попробовал VC++6.0 — не получилось! Даже переменную класса complex определить не удается.

BNB>> _complex работает, а ( complex + #include <complex> ) — нет. А это далеко не одно и
BNB>> тоже... Почему?!!
Re[3]: Работа с комплексными числами в С++
От: SergH Россия  
Дата: 01.08.02 20:41
Оценка:
Здравствуйте bnb-real, Вы писали:

BNB>>> Попробовал VC++6.0 — не получилось! Даже переменную класса complex определить не удается.

BNB>>> _complex работает, а ( complex + #include <complex> ) — нет. А это далеко не одно и
BNB>>> тоже... Почему?!!
BR>

Потому, что нужно писать так:

#include <complex>

std::complex<double> c;
Делай что должно, и будь что будет
Re[3]: Работа с комплексными числами в С++
От: Bell Россия  
Дата: 02.08.02 09:23
Оценка:
Здравствуйте bnb-real, Вы писали:

BR>Здравствуйте IT, Вы писали:


B>>>Господа, есть ли в С++ готовый написанный класс для работы с комплексными числами.

B>>>Или подскажите, где это описано в MSDN.

IT>>Класс называется 'complex'.

IT>>Подключается через файл <complex>.
IT>>В MSDN находится по ключевому слову "complex".

BNB>>> Попробовал VC++6.0 — не получилось! Даже переменную класса complex определить не удается.

BNB>>> _complex работает, а ( complex + #include <complex> ) — нет. А это далеко не одно и
BNB>>> тоже... Почему?!!
BR>

потому что класс complex<> — элемент стандартной библиотеки шаблонов (STL), и, как и вся библиотека, находится в namespase std.
Поэтому нужно писать

std::complex<int> MyComplexNumber;


или в перед использованием библиотечных классов/функций написать

using namespace std;

и дальше писать как обычно
Любите книгу — источник знаний (с) М.Горький
Re[4]: Работа с комплексными числами в С++
От: dupamid Россия  
Дата: 02.08.02 09:57
Оценка:
Здравствуйте Bell, Вы писали:

B>потому что класс complex<> — элемент стандартной библиотеки шаблонов (STL), и, как и вся библиотека, находится в namespase std.

B>Поэтому нужно писать

B>
B>std::complex<int> MyComplexNumber;
B>


К сожалению в зависимости от компилятора это может быть не лучший вариант, так как операторы +, — и .д. будут не находиться, если компилятор не поддерживает поиск имен в зависимости от типов аргументов (Koenig lookup) см. Стандарт 3.4.2. MS Visual C++ 6.0 его вообще не поддерживает, а .NET только для операторов. Так что этот вариант не смотря на его привликательность может не работать.

B>или в перед использованием библиотечных классов/функций написать


B>
B>using namespace std;
B>

B>и дальше писать как обычно

Это вариант хуже, но зато работаеть будет
Re[5]: Работа с комплексными числами в С++
От: Bell Россия  
Дата: 02.08.02 10:15
Оценка:
Здравствуйте dupamid, Вы писали:

D>Здравствуйте Bell, Вы писали:


B>>потому что класс complex<> — элемент стандартной библиотеки шаблонов (STL), и, как и вся библиотека, находится в namespase std.

B>>Поэтому нужно писать

B>>
B>>std::complex<int> MyComplexNumber;
B>>


D>К сожалению в зависимости от компилятора это может быть не лучший вариант, так как операторы +, — и .д. будут не находиться, если компилятор не поддерживает поиск имен в зависимости от типов аргументов (Koenig lookup) см. Стандарт 3.4.2. MS Visual C++ 6.0 его вообще не поддерживает, а .NET только для операторов. Так что этот вариант не смотря на его привликательность может не работать.


B>>или в перед использованием библиотечных классов/функций написать


B>>
B>>using namespace std;
B>>

B>>и дальше писать как обычно

D>Это вариант хуже, но зато работаеть будет


т.е. пользоваться STL и так и так плохо — никогда не знаешь, будет работать или нет — и зачем только ее в этот namespace засунули?!
Любите книгу — источник знаний (с) М.Горький
Re[6]: Работа с комплексными числами в С++
От: Slyder Украина  
Дата: 03.08.02 07:56
Оценка:
Здравствуйте Bell, Вы писали:

B>Здравствуйте dupamid, Вы писали:


D>>Здравствуйте Bell, Вы писали:


B>>>потому что класс complex<> — элемент стандартной библиотеки шаблонов (STL), и, как и вся библиотека, находится в namespase std.

B>>>Поэтому нужно писать

B>>>
B>>>std::complex<int> MyComplexNumber;
B>>>


D>>К сожалению в зависимости от компилятора это может быть не лучший вариант, так как операторы +, — и .д. будут не находиться, если компилятор не поддерживает поиск имен в зависимости от типов аргументов (Koenig lookup) см. Стандарт 3.4.2. MS Visual C++ 6.0 его вообще не поддерживает, а .NET только для операторов. Так что этот вариант не смотря на его привликательность может не работать.


B>>>или в перед использованием библиотечных классов/функций написать


B>>>
B>>>using namespace std;
B>>>

B>>>и дальше писать как обычно

D>>Это вариант хуже, но зато работаеть будет


B>т.е. пользоваться STL и так и так плохо — никогда не знаешь, будет работать или нет — и зачем только ее в этот namespace засунули?!

B>
Для того, чтоб незасорять глобальное пространство имен
А чтоб пользоваться комплексными числами необходимо
написать так

#include <complex>

using namespace std;

void main()
{
   complex<double> d(2,6); 
}

А далее тебе стоит почитать страуструпа про перегрузку операторов и про стандартную библиотеку там это все подробно и описано.
Re[7]: Работа с комплексными числами в С++
От: Bell Россия  
Дата: 03.08.02 14:57
Оценка:
Здравствуйте Slyder, Вы писали:

B>>т.е. пользоваться STL и так и так плохо — никогда не знаешь, будет работать или нет — и зачем только ее в этот namespace засунули?!

B>>
S>Для того, чтоб незасорять глобальное пространство имен
S>А чтоб пользоваться комплексными числами необходимо
S>написать так

S>
S>#include <complex>

S>using namespace std;

S>void main()
S>{
S>   complex<double> d(2,6); 
S>}
S>

S>А далее тебе стоит почитать страуструпа про перегрузку операторов и про стандартную библиотеку там это все подробно и описано.

Эээ...
Аважаемый Slyder! Пожалуйста, обращайте внимание на смайлики, и внимательнее читайте текст постов.
Сие ироническое замечание предназночалось dupamid-у.

ЗЫ
А страуструпа мне читать доводилось, и не раз
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.