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

Перегрузка функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объявление класса в заголовочном файле http://www.cyberforum.ru/cpp-beginners/thread965208.html
Здравствуйте. Столкнулся с тем что нужно скомпилировать библиотеку для C++. классы написал, библиотеку скомпилировал. осталось только дополнить заголовочным файлом. Не могу найти примера того, что нужно в нем написать для класса. классы выглядят примерно так: class MyClass{ public: MyClass(int n1, int n1){ val1 = n1; val2 = n2 } int Sum(){ ...
C++ Allegro Есть программа, создает прямоугольник и надпись в нем, типа кнопок. Нужно сделать таких кнопок во всю длину экрана, несколько штук. Вопрос в том, что можно ли сделать какой-нибудь алгоритм для их создания или каждый по отдельности делать? Еще ошибку выдает(красным) #include <iostream> #include <stdlib.h> #include <allegro.h> #define MAXX 1280 #define MAXY 1024 http://www.cyberforum.ru/cpp-beginners/thread965206.html
Синглтон C++
есть базовый класс Singleton и производный от него Logger, все вроде бы хорошо работает при создании 1 объекта, но появилась необходимость создания нескольких логов которые бы служили для конкретных целей и каждый бы писал в свой собственный файл как это реализовать вот то что сам смог: #pragma once; #include<iostream> template<class T> class Singleton { public: static T* instance() {
C++ Алгоритм быстрой сортировки не работает с большим количеством чисел
Требовалось написать программу с алгоритмами сортировки, затем сравнить эти алгоритмы (но проблема не в этом). Все работает, кроме быстрой сортировке. Ввожу размер массива 77, все сортируется во всех алгоритмах, ввожу 78 и выше, зависает именно на быстрой сортировке и завершается((( В чем проблема можеть быть? Вот, собственно, код. #include <iostream> #include <stdlib.h> #include <ctime>...
C++ Общие символы для двух строк(своего класса) через перегрузку оператора http://www.cyberforum.ru/cpp-beginners/thread965189.html
Создать свой строковый класс, добавить функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. Например, результатом пересечения строк "sdqcg" "rgfas34" будет строка "sg". Для реализации функции перегрузить оператор * (бинарное умножение). Вот что у меня получилось(выдает ошибку нарушение прав доступа): #include <iostream> #include <string>...
C++ C++ Очередь Предисловие к заданию: Определить структуру очереди и разработать функции, которые необходимы для работы с заданным контейнером: функция складывания элемента push(память выделять динамически), функцию извлечения элемента pop, функцию печати содержимого контейнера на экран, функцию удаления контейнера. Задание: Создать программное приложение, в котором создается контейнер и заполняется... подробнее

Показать сообщение отдельно
Владислаучык
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 289
29.09.2013, 21:59     Перегрузка функции
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
class num
{
private:
    long a;
    long b;
    int c;
    int d;
public:
    num();
    num(long, long);
    num(int, int);
    ~num();
    long swap(long, long);
    int swap(int, int);
    void show();
    void see();
};
 
num::num()
{
    a=0;
    b=0;
    c=0;
    d=0;
}
 
num::num(long f, long v)
{
    a=f;
    b=v;
}
 
num::num(int z, int l )
{
    c=z;
    d=l;
}
 
 
num::~num()
{
 
}
 
void num::see()
{
    cout<<"Vivod: A: ";
        cout<<a;
    cout<<"B:  ";
    cout<<b;
}
 
long num::swap(long, long)
{
    long c=0;
    c=a;
    a=b;
    b=c;
    return a, b;
}
 
int num::swap(int, int)
{
int tmp=0;
tmp=c;
c=d;
d=tmp;
return c, d;
}
 
void num::show()
{
    cout<<"Vivod: A: ";
        cout<<a;
    cout<<"B:  ";
    cout<<b;
}
 
int main()
{
    num a(3, 4);
    num b(3.3, 4.4);
    a.see();
    a.swap(3, 4);
    b.swap(3.3, 4.4)
    a.show();
    system("pause");
}
Задание, написать перегрузку функции меняющее эементы местами.

Пишет существует более одного экземпляра конструктора нум, в чём тут проблема? помогите пожалуйста)

Добавлено через 14 минут
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <string>
#include <iostream>
using namespace std;
 
class num
{
private:
    long a;
    long b;
    int c;
    int d;
public:
    num();
    ~num();
    void swap(long, long);
    void swap(int, int);
    void initint();
    void initlong();
    void show();
    void see();
};
 
num::num()
{
    a=0;
    b=0;
    c=0;
    d=0;
}
 
num::~num()
{
 
}
 
void num::initint()
{
    cout<<"Vvedite C: ";
    cin>>c;
    cout<<"Vvedite D: ";
    cin>>d;
 
}
 
void num::initlong()
{
    cout<<"Vvedite A: ";
    cin>>a;
    cout<<"Vvedite B: ";
    cin>>b;
 
}
 
void num::show()
{
    cout<<a;
    cout<<d;
    cout<<c;
    cout<<d;
}
 
void num::swap(long, long)
{
    long tmp=0;
    tmp=a;
    a=b;
    b=tmp;
}
 
void num::swap(int, int)
{
    int temp=0;
    temp=c;
    c=d;
    d=temp;
}
 
int main()
{
    num q;
    num a;
    q.initint();
    a.initlong();
    q.swap(3,4);
    a.swap(5.5,5.4);
    q.show();
    a.show();
    system("pause");
}
или так допустим

Добавлено через 19 минут
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
59
60
61
62
63
64
65
66
67
68
#include <string>
#include <iostream>
using namespace std;
 
class num
{
private:
    int a;
    int b;
    double c;
    double d;
public:
 
    num(int a1, int b1, double c1, double d1) : a(a1), b(b1), c(c1), d(d1) {}
    int swap(int, int);
    double swap(double, double);
    void see();
    void show();
};
 
int num::swap(int, int)
{
    int c=0;
    c=a;
    a=b;
    b=c;
    return a, b;
}
 
double num::swap(double, double)
{
    double c=0;
    c=a;
    a=b;
    b=c;
    return c, d;
}
 
void num::see()
{
    cout<<a;
    cout<<endl;
    cout<<b;
    cout<<endl;
    cout<<c;
    cout<<endl;
    cout<<d;
}
 
void num::show()
{
    cout<<a;
    cout<<endl;
    cout<<b;
    cout<<endl;
    cout<<c;
    cout<<endl;
    cout<<d;
}
 
int main()
{
    num obj(1,2, 2.3, 3.3);
    obj.swap(1,2);
    obj.swap(2.3, 3.3);
    obj.show();
    system("pause");
}
- вот так ошибок нету, но вообще не работает =\\
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru