Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48

Перегрузка операции ~

22.10.2014, 17:24. Показов 3029. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Перегрузить операцию ~ (унарная операция) так, чтобы она изменяла знак закрытых элементов – данных на противоположный для класса, содержащего три закрытых элемента. Использовать дружественные функции.

Вопрос: как работает операция дополнение и что значит - "чтобы она изменяла знак закрытых элементов – данных на противоположный для класса, содержащего три закрытых элемента"?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2014, 17:24
Ответы с готовыми решениями:

Перегрузка операции
Запрограммировать и протестировать заданную перегруженную операцию, содержащуюся в классе, производном от заданного класса VECTOR. V...

Перегрузка операции =
Подскажите пожалуйста как для шаблонной функции перегрузить = есть не сложно то на примере!!

Перегрузка операции =
Здравствуйте, в программе вылезает такая ошибка MainUnit.cpp(86): E2034 Cannot convert 'string' to 'UnicodeString' в связи с этим...

15
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
22.10.2014, 17:30
C++
1
2
3
4
5
6
7
8
9
class vec3{
  public:
    vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
    vec3 operator ~(){
      return vec3(-x, -y, -z);
    }
  protected:
   int x, y, z;
};
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 17:31  [ТС]
Я понял это так: 3 закрытых элемента в классе(то есть private) в данном случае будут числами и нам надо просто поменять знак этих чисел при помощи перезагруженной операции. Верно?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
22.10.2014, 17:31
Jacky09, и чё? а у меня не так?
0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 17:33  [ТС]
Воу, спасибо за быстрый ответ
То есть мы просто должны вернуть числа с противоположным знаком, верно?

Добавлено через 24 секунды
я просто пока писал, ты уже ответил
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
22.10.2014, 17:45
Jacky09, все ок, только обрати внимание, что по условию оператор должен быть дружественной функцией.
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 17:54  [ТС]
Не могу разобраться с этой строчкой
C++ (Qt)
1
vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
А так должна получится отдельная функция и в класс я должен приписать
C++ (Qt)
1
friend Function_name(Argument)?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
22.10.2014, 18:00
Цитата Сообщение от Jacky09 Посмотреть сообщение
Не могу разобраться с этой строчкой
Список инициализации
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 18:22  [ТС]
Конечно туговато въезжаю, можно примерно так сделать? :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Tilda{
  public:
    ftilda () {x=0,y=0};
friend int setxyz(ftilda);
friend tilda;
  protected:
   int x, y, z;
};
 
int setxyz (int X, int Y,int Z) {
x=X;
y=Y;
z=Z;
}
 
int tilda operator~() {
return (-x,-y,-z)
}
 
void main() {
setxyz(5,-20,15);
...
}
Мда, чет беда совсем
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
22.10.2014, 18:33
Jacky09, https://www.google.com/search?... ator+unary
C++
1
2
3
4
5
6
7
8
9
10
class vec3{
  public:
    vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
    friend vec3  operator ~(vec3 arg);
  protected:
   int x, y, z;
};
    vec3  operator ~(vec3 arg){
      return vec3(-arg.x, -arg.y, -arg.z);
    }
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 18:35  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Tilda{
  public:
   tilda () {x=0,y=0,z=0};
friend int setxyz(tilda);
friend tilda operator~(int p1,int p2,int p3);
  protected:
   int x, y, z;
};
 
int setxyz (int X, int Y,int Z) {
x=X;
y=Y;
z=Z;
}
 
int tilda operator~() {
return (-x,-y,-z)
}
 
void main() {
setxyz(5,-20,15);
...
}
Так и не разобрался

Добавлено через 1 минуту
Попробую разобраться, спасибо
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
22.10.2014, 18:38
Jacky09, значит, тебе рано изучать перегрузку операторов и классы вообще. Складывается впечатление, что ты нетвёрдо изучил обычные функции. Всё смешано в кучу: tilda и инты, друзья и члены, и.т.д...
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 18:43  [ТС]
да блин в инсте изучали С, остановились на структурах в прошлом году, а в новом сразу же классы. Сразу сложновато в лабах разобраться)

Добавлено через 3 минуты
Попробывал что-то вроде того:
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
class vec3{
  public:
    vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
    friend vec3  operator ~(vec3 arg);
    void get(){
            cout<<"XYZ please\n";
            cin>>x>>y>>z;
        }
        void disp(){
            cout<<x<<y<<z<<endl;
        }
  protected:
   int x, y, z;
}s1;
    vec3  operator ~(vec3 arg){
      return vec3(-arg.x, -arg.y, -arg.z);
    }
 
 
int main() {
    s1.get();
    s1.disp();
    ~s1;
}
Написал что: нет подходящего конструктора по умолчанию
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
22.10.2014, 18:46
Лучший ответ Сообщение было отмечено Jacky09 как решение

Решение

Цитата Сообщение от Jacky09 Посмотреть сообщение
Написал что: нет подходящего конструктора по умолчанию
создай конструктор по-умолчанию,
либо не создавай объектов без параметров!

Добавлено через 1 минуту
Цитата Сообщение от Jacky09 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
class vec3{
public: 
vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
 friend vec3 operator ~(vec3 arg); 
void get(){ cout<<"XYZ please\n"; cin>>x>>y>>z; } 
void disp(){ cout<<x<<y<<z<<endl; } 
protected: int x, y, z; 
}s1
;
C++
1
2
3
4
5
6
7
class vec3{
public: 
vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
 friend vec3 operator ~(vec3 arg); 
void disp(){ cout<<x<<y<<z<<endl; } 
protected: int x, y, z; 
}s1(0,0,0);
C++
1
2
3
4
5
6
7
8
9
10
class vec3{
public: 
vec3(int _x, int _y, int _z): x(_x), y(_y), z(_z){};
 friend vec3 operator ~(vec3 arg); 
void disp(){ cout<<x<<y<<z<<endl; } 
protected: int x, y, z; 
};
int main{
vec3 s1(0,0,0)
}
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
22.10.2014, 18:48  [ТС]
Спасибо
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.10.2014, 18:58
Цитата Сообщение от Jacky09 Посмотреть сообщение
Я понял это так: 3 закрытых элемента в классе(то есть private) в данном случае будут числами и нам надо просто поменять знак этих чисел при помощи перезагруженной операции. Верно?
Да.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2014, 18:58
Помогаю со студенческими работами здесь

Перегрузка операции
Никак не могу понять как перегрузить оператор. Кучу примеров пересмотрел, но все равно не пойму. Надо перегрузить так, что + добавляет...

Перегрузка операции
Здравствуйте! Нужно перегрузить операцию &lt;&lt; для вставки полей объекта класса в файл. Есть класс Hostel c полями FIO, GroupNumber и...

Перегрузка операции >>
Всем привет! Суть: есть класс, есть объект, есть перегруженная операция &gt;&gt; для ввода полей объекта. Есть приватный метод, который...

Перегрузка операции >>
Вообщем хочу перегрузить операцию &gt;&gt; и инициализировать с ее помощью класс. Но что-то перемудрил и компилятор ругается на эту функцию: ...

Перегрузка операции +
Всем привет! Ребята, обясните, пжлста, почему конструктор вызывается дважды. Rational integer1( c, d ),h;// инициализация h ( здесь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru