Форум программистов, компьютерный форум CyberForum.ru

Перегрузка операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Прочитать из файла массив, отсортировать, результат вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread290903.html
Разработать приложение, выполняющее следующие функции. Прочитать из файла массив строк символов. Отсортировать массив в лексикографическом порядке (по алфавиту) (методом выбора). Результат вывести на экран и записать в файл. (Язык С)
C++ считать Полиномиал ньютона данная таблицей на точке x=3 c++ i 012 xi 234 f(xi)352 считать Полиномиал ньютона данная таблицей на точке x=3 c++ i 012 xi 234 f(xi)352 http://www.cyberforum.ru/cpp-beginners/thread290892.html
C++ считать Полиномиал ньютона данная таблицей на точке x=3 c++
считать Полиномиал ньютона данная таблицей на точке x=3 c++ i 0 1 2 xi 2 3 4 f(xi)3 5 2
C++ Как разбить строку по нескольким делиметрам
есть строка char *a = "123497, 56783; 09872!, 65443; ;221345, 623789 "; разделители char keys = ", !;."; нужно выделить слова как проще сделать? есть функция strcspn которая ищет любой символ и строки keys например. но разделителей подряд может быть сколько угодно, что с этим делать? заранее спасибо
C++ Конвертация в KOI-7 http://www.cyberforum.ru/cpp-beginners/thread290865.html
Здравствуйте! Вопрос: Нужно программно конвертировать обычный текстовый файл в двоичный файл с КОИ-7 кодировкой. Алгоритм: Перевести символы в 16-чный код согласно КОИ-7 16-ый код конвертировать в бинарный,(пример :7F(HEX)=1111111(BIN) ) Вопрос: правильно ли я рассуждаю?
C++ Перевод строки CString в массив чисел Здравствуйте. Имеется строка CString вида S1S2S3S12S12S0S10S То есть символы S чередуются с цифрами от 0 до 15. Нужно все эти цифры вставить в массив. Делаю вот так: index_str - сама строка CString, index - массив int. int b = 1; int k = 0; for (int i = 1; i != 150; i++) { if (index_str == 'S') { CString s; s.Mid(b, i-b); подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
08.05.2011, 18:57     Перегрузка операторов
Цитата Сообщение от delete1991 Посмотреть сообщение
ну если можно сделать перегрузку оператора != чтобы он выполнял операцию в задание
Нельзя. Он бинарный.

Ну вот класс, который реализует все означенное.
operator~ -- в качестве унарного a == 0. Только не "выводит сообщение", а возвращает true.
С геттерами и сеттерами, как в книжке.
C++
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 <cmath>
#include <iostream>
 
class Triangle {
 public:
  Triangle() : a_(0), b_(0), c_(0) {}
  Triangle(float a, float b, float c)
    : a_(a), b_(b), c_(c) {}
  bool operator==(const Triangle &other) const {
    return (fabs(a_ - other.a()) < epsilon &&
            fabs(b_ - other.b()) < epsilon &&
            fabs(c_ - other.c()) < epsilon);
  }
  bool operator!() const {
    return (a_ < (b_ + c_) && b_ < (c_ + a_) && c_ < (b_ + a_));
  }
  float operator+() const {
    return (a_ + b_ + c_);
  }
  bool operator<=(const Triangle &other) const {
    return fabs((a_ + b_ + c_) - (other.a() + other.b() + other.c())) < epsilon;
  }
  bool operator~() const {
    return fabs(a_) < epsilon;
  }
  Triangle operator+(const Triangle &other) const {
    return Triangle(a() + other.a(), b() + other.b(), c() + other.c());
  }
  friend std::ostream &operator<<(std::ostream &stream, const Triangle &t) {
    return stream << "(" << t.a() << ", " << t.b() << ", " << t.c() << ")";
  }
  friend std::istream &operator>>(std::istream &stream, Triangle &t) {
    return stream >> t.a_ >> t.b_ >> t.c_;
  }
  float a() const { return a_; }
  float b() const { return b_; }
  float c() const { return c_; }
  void  a(float value) { a_ = value; }
  void  b(float value) { b_ = value; }
  void  c(float value) { c_ = value; }
 private:
  float a_;
  float b_;
  float c_;
  const static float epsilon = 0.0001;
};
 
int main(int argc, char *argv[]) {
  Triangle a(2, 2, 2), b(2, 2, 2);
  std::cout << a << " " << b << std::endl
            << (a + b) << std::endl
            << (a == b) << std::endl 
            << !a << std::endl
            << ~a << std::endl
            << (a <= b) << std::endl
            << +a << " " << +b << std::endl;
  return 0;
}
 
Текущее время: 12:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru