Здравствуйте IT, Вы писали:
B>>Господа, есть ли в С++ готовый написанный класс для работы с комплексными числами. B>>Или подскажите, где это описано в MSDN.
IT>Класс называется 'complex'. IT>Подключается через файл <complex>. IT>В MSDN находится по ключевому слову "complex".
BNB>> Попробовал VC++6.0 — не получилось! Даже переменную класса complex определить не удается. BNB>> _complex работает, а ( complex + #include <complex> ) — нет. А это далеко не одно и BNB>> тоже... Почему?!!
Здравствуйте bnb-real, Вы писали:
BNB>>> Попробовал VC++6.0 — не получилось! Даже переменную класса complex определить не удается. BNB>>> _complex работает, а ( complex + #include <complex> ) — нет. А это далеко не одно и BNB>>> тоже... Почему?!! BR>
Здравствуйте 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;
или в перед использованием библиотечных классов/функций написать
Здравствуйте 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>
Здравствуйте 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 засунули?!
Здравствуйте 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>
Для того, чтоб незасорять глобальное пространство имен
А чтоб пользоваться комплексными числами необходимо
написать так
Здравствуйте Slyder, Вы писали:
B>>т.е. пользоваться STL и так и так плохо — никогда не знаешь, будет работать или нет — и зачем только ее в этот namespace засунули?! B>> S>Для того, чтоб незасорять глобальное пространство имен S>А чтоб пользоваться комплексными числами необходимо S>написать так
S>
S>А далее тебе стоит почитать страуструпа про перегрузку операторов и про стандартную библиотеку там это все подробно и описано.
Эээ...
Аважаемый Slyder! Пожалуйста, обращайте внимание на смайлики, и внимательнее читайте текст постов.
Сие ироническое замечание предназночалось dupamid-у.