Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

перегрузка операций основных типов - C++

14.03.2013, 00:22. Просмотров 500. Ответов 10
Метки нет (Все метки)

Здорова!
Опять ничо не получается.
Пытаюсь разобраться с перегрузкой операций возьмем класс int
от я записал допустим
int a=4;
да все вроде работает как нужно и в а унас появилась 4, но это считается короткая форма записи
на самом деле вызывается функция
int& operator=(число наверно или инт хз);
Ничо не пойму пытаюсь записать в полной записи через operator=. Пишу следующее:
int a.operator=(4);
и о боже ошибка? Шо за фигня? Какая перегруженная функция вызывается при int a=4;
Как записать полную запись?
Просветите новичка!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 00:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка операций основных типов (C++):

Перегрузка операций и сортировка типов Char - C++
КАК в этой проге сделать правельно упорядочивание студентов и как перегруженные операции += и -= задать? #include <stdio.h> #include...

Программа основных операций над матрицами - C++
Помогите пожалуйста, нужно написать программу основных операций над матрицами в С++ Транспортировку сделала, дальше всё никак+это ведь...

Программа для проведения основных операций над матрицами - C++
Парни привет всем нужна помощь мне задали сделать курсовую на с++ я в нем не шарю теорию я сделал а вот дело дошло до проги я незнаю как...

Длинная арифметика: реализация основных арифметических операций (ООП) - C++
общие требования В независимости от индивидуального варианта должны быть реализованы следующие возможности: 1. Реализация методов...

Хранение в контейнере deque целых чисел и проверка основных операций - C++
Написала код: #include "stdafx.h" #include <iostream> #include <deque> using namespace std; void show (const char *str,...

Реализовать абстрактную таблицу и дать оценку времени выполнения основных операций - C++
Здравствуйте, дали задание реализовать абстрактную таблицу и дать оценку времени выполнения основных операций. Оценку дать думаю не состоит...

10
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
14.03.2013, 00:36 #2
я конечно не спец в с++ но, вряд ли такая запись свойственна для примитивов.
если хотите потренироваться в перегрузке операторов пишите свой класс и там перегружайте.

Добавлено через 9 минут
Вот пример с классом string тут работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
using namespace std;
 
int main ( ){
 
    string s;
    s.operator =("Hello world");
    cout<<s<<endl;
 
    return 0;
}
1
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.03.2013, 00:40 #3
int это не класс
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.03.2013, 00:41  [ТС] #4
Цитата Сообщение от egor2116 Посмотреть сообщение
я конечно не спец в с++ но, вряд ли такая запись свойственна для примитивов.
если хотите потренироваться в перегрузке операторов пишите свой класс и там перегружайте.
Я тоже не спец, но когда я создаю тип например S и объявляю
S a,b,c;
и делаю вызов:

a.operator+(b); или a+b;

у меня вызывается функция S operator+(const S&);

Так почему же при вызове
int a=1; int b=4; int c;
c=a.operator+(b);

у меня вылазит ошибка?
При c=a+b ошибки нету. Как то не ясно чо за фигня.
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.03.2013, 00:44 #5
Потому что сложение чисел типа int — это примитивная операция. Для неё нет метода. И для встроенных типов (вроде int) нельзя создавать (перегруженные) методы.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.03.2013, 00:44  [ТС] #6
Цитата Сообщение от Jupiter Посмотреть сообщение
int это не класс
Как это не класс? int, double, string, char, и вся фигня это ж вроде как типы, а типы и классы это в С++ это одно и тоже. Создал свой класс, считай, что создается новый тип, да у них помоему если не ошибаюсь, то тоже происходит перегрузка операций.
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
14.03.2013, 00:45 #7
я конечно не спец в с++ но, вряд ли такая запись свойственна для примитивов.
если хотите потренироваться в перегрузке операторов пишите свой класс и там перегружайте.
Прочитайте еще раз вторую часть первой строки.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.03.2013, 00:46  [ТС] #8
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Потому что сложение чисел типа int — это примитивная операция. Для неё нет метода. И для встроенных типов (вроде int) нельзя создавать (перегруженные) методы.
Так это ж не создание это просто вызов функций, как бы полная форма записи. Так, что для встроенных можно токо коротко записывать?

Ладно будем считать, что int, double, char это как бы встроенные классы, а string это как бы не встроенные.
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
14.03.2013, 00:48 #9
Видимо да
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.03.2013, 00:49  [ТС] #10
Цитата Сообщение от egor2116 Посмотреть сообщение
Прочитайте еще раз вторую часть первой строки.
Да работает, токо када свой создаешь
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
14.03.2013, 00:51 #11
Это логично, в системе должны быть примитивные типы с которых все начинается.
0
14.03.2013, 00:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2013, 00:51
Привет! Вот еще темы с ответами:

Перегрузка операций - C++
Здравствуйте, помогите с лабораторной. Я правильно сделал и как менять названия у перегрузки операций на + и - еще нормально но на...

Перегрузка операций - C++
Друзья, помогите с перегрузкой некоторых операций, пожалуйста) Задание: Есть угол на плоскости(поля угол и минуты). Перегрузить...

Перегрузка операций! - C++
Здравствуйте, у меня есть код (работы со строками) и нужно перегрузить операцию чтобы данный класс (текст). мог прибавлять к себе другой...

Перегрузка операций - C++
Добрый день! Задание простенькое но не могу решить так как не получается перегрузка операций. Задание: Вычислить точное значение суммы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.