Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390

перегрузить функции

04.01.2011, 23:01. Показов 1117. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
можно ли как нибудь функцию перегрузить вне класса. На сколько я знаю перегружают в классе.
а функция то-вывода...толи массива толи матрицы
C++
1
2
void out(int a,int x[],int n);
void out(int a,int x[][n],int n);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2011, 23:01
Ответы с готовыми решениями:

как перегрузить функции?
Я с горем пополам создал класс Bitstring для работы с 64-битовыми строками. Битовая строка представлена двумя полями. Реализованы все...

Перегрузить >> и << как дружественные функции
Доброго времени суток :) Задача - перегрузить &gt;&gt; и &lt;&lt;, как дружественные функции Вот код: #include&lt;iostream&gt; using...

Почему нельзя перегрузить следующие функции
2.Почему нельзя перегрузить следующие функции (возвращают численное значение, содержащееся в строке, на которую указывает *s) ...

15
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.01.2011, 23:02
^Tecktonik_KiLLeR, Можно. Это и есть перегрузка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void print(int one)
{
   std::cout<<one<<'\n';
}
 
void print(int one, int sec)
{
   std::cout<<one<<'\n'<<sec<<'\n';
}
 
int main()
{
    print(5);
    print(10, 6);
    return 0;
}
1
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:04  [ТС]
а оператор скажем "+" только в классе можно?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.01.2011, 23:08
^Tecktonik_KiLLeR, Нет. Но при этом как минимум один должен быть объектом класса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
struct what
{
    int a;
    what(int a_=0):a(a_)
    {
    }
};
 
what operator +(const what& one, int sec)
{
    return what(one.a+sec);
}
 
int main()
{
   what a(5);  
   a=a+5;
   std::cout<<a.a<<'\n';
   return 0;
}
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
04.01.2011, 23:09
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
а оператор скажем "+" только в классе можно?
Не только, можно и в структуре, обединение.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:09  [ТС]
вот лол.
пытаюсь в файле *.h бъявить функцию ввода матрицы
C++
1
2
3
4
5
6
7
8
9
void out(int x[][n],int n)// matrix's output
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        cout<<x[i][j]<<" ";
    cout<<endl;
    }
}
так пишет что с переменной n не знаком..пишу без n выводит какую то ошибку..
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.01.2011, 23:11
^Tecktonik_KiLLeR, Ну так верно. Подавай указатель на указатель - так будет лучше. Или же n должен быть глобальной константой или же #define-ом
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:12  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
обединение
приведите пример.
в файле у меня функций много,не правильно...и скажите если функция в объединении, при его вызове что либо изменяется?

Добавлено через 38 секунд
Цитата Сообщение от ForEveR Посмотреть сообщение
^Tecktonik_KiLLeR, Ну так верно. Подавай указатель на указатель - так будет лучше. Или же n должен быть глобальной константой или же #define-ом
оппа..
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
04.01.2011, 23:13
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
приведите пример.
Там все аналогично до структуры, пример см. пост #4.
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:14  [ТС]
ForEveR, как же можно глобальной объявить размер?Не правильно же так..изменяться нельзя
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.01.2011, 23:21
^Tecktonik_KiLLeR, Ну дык для этого и существует динамические массив не правда-ли?
C++
1
2
3
4
5
6
7
8
9
void out(int** x,int n)// matrix's output
{
        for(int i=0;i<n;i++)
        {
                for(int j=0;j<n;j++)
                cout<<x[i][j]<<" ";
        cout<<endl;
        }
}
Чем плохо?
2
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.01.2011, 23:24
^Tecktonik_KiLLeR, тогда юзайте динамическое выделение памяти. Стыдно набить столько сообщений и репы (в том числе в формуе по плюсам) и пытаться юзать конструкцию типа
C++
1
2
3
int N;
std::cin >> n;
int arr[n];
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:25  [ТС]
Цитата Сообщение от silent_1991 Посмотреть сообщение
int N; std::cint >> n; int arr[n];
если это я писал то это опечатка.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.01.2011, 23:35
Хм, а чем по сути это отличается от void out(int a,int x[][n],int n);?
Мы чётко знаем, что компилятору должны быть известны все размеры массива, который передаётся в функцию, кроме первого. Так вот, он это должен знать на стадии компиляции. Как и размер создаваемого массива. Я в своём примере пытаюсь сообщить программе размер создаваемого массива на стадии выполнения, а вы размер передаваемого массива во время выполнения. Так в чём отличие?
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
04.01.2011, 23:42  [ТС]
silent_1991, да я знаю в чем отличие тамА вот с функциями я этого не увидел..значит либо указатели,либо дин.массивы,или же глоб.константа
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.01.2011, 23:44
Цитата Сообщение от ^Tecktonik_KiLLeR Посмотреть сообщение
либо указатели,либо дин.массивы,или же глоб.константа
Точно
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2011, 23:44
Помогаю со студенческими работами здесь

Перегрузить операторные функции, возвращающие логические значения: >, < и ==
Я определил нужные функции, но не знаю как их теперь правильно вызвать, при запуске линковщик выдаёт ошибки: Source.obj : error LNK2019:...

Не получается перегрузить оператор вывода для дружественной функции
Не могу понять почему пытаясь перегрузить оператор вывода использую дружественную функцию, я не могу передать объект по значению, это...

Для класса String перегрузить функции strcpy, strcat
Подскажите пожалуйста, не пойму само задание из Дейтела. Изучаю главу перегрузки операций. &quot;Изучите функции библиотеки...

Перегрузить
Уважаемы форумчание нужна помощь, задание связанно с перегузкой операций. Задание: разработать класс оболочку int и перегрузить операции...

Перегрузить
#include &lt;conio&gt; #include &lt;iostream&gt; #include &lt;stdio&gt; using namespace std; class summa { private: double first; int second; ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru