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

Перегрузка функций в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как в Visual C++ 2010 создать регион? http://www.cyberforum.ru/cpp-beginners/thread647229.html
Хорошо бы исходничек, а то я на теории туплю, и это можно есть вместе с MFC?
C++ Дан файл,содержащий информацию о поступлении платежей по квартплате в текущий год Дан файл,содержащий информацию о поступлении платежей по квартплате в текущий год.Структура записи файла: -номер лицевого счета -фамилия -номер квартиры -номер месяца -сумма платежа Написать программу выдающую: -список номеров квартир с фамилиями жильцов ,от которых поступили платежи за указанный месяц. -суммарное значение поступивших с начала года платежей по заданному номеру лицевого... http://www.cyberforum.ru/cpp-beginners/thread647220.html
C++ Объявление функции другом класса
Объявил функцию другом класса и в функции обращаюсь к закрытым данным класса,но почему-то не получается из-за того,что нет доступа к ним,хотя в другой функции-друге класса всё нормально вот class Subscriber { friend class Call; friend class Date; friend void MainMenu(vector<Subscriber> &subscribers); friend bool Savedata(vector<Subscriber> &subscribers); public:
Не выводит список на экран C++
Здравствуйте! Проблема вот в чем: при запуске программы ошибок не возникает, только мигнет черное окошко и все. Отлаживая программу выяснил, что проблемма находится тут, операция присваивания не происходит, пишет невозможно вычислить выражение: int n = sizeof(books); for (int i = 0; i < n; i++) { last = new(record); (*last).book.author = books.author; (*last).book.title = books.title;...
C++ найти точку http://www.cyberforum.ru/cpp-beginners/thread647194.html
вводится N- количество домов и К- количество дорог. дома пронумерованы от 1 до N. каждая дорога определяется тройкой чисел- двумя номерами домов- концов дороги и длиной дороги. в каждрм доме живет по одному человеку. найти точку- место встречи всех людей, от которой суммарное расстояние до всех домов будет минимальным. если точка лежит на дороге, то указать номера домов-концов этой дороги и...
C++ Блок схема Челночной сортировки Очень нужна блок схема Челночной сортировки!!! подробнее

Показать сообщение отдельно
novak
2 / 2 / 0
Регистрация: 14.04.2011
Сообщений: 141
05.09.2012, 22:49  [ТС]     Перегрузка функций в классе
Цитата Сообщение от panicwassano Посмотреть сообщение
где в классе стека задается вершина
После прогонки функций void push() и void pop() переменная b имеет значение последнего индекса массива. Вернее даже на единицу больше. Потому data[--b] должен выдавать значение вершины Стека. Пока я не стал применять перегрузку функций все работало нормально.

Добавлено через 25 минут
Давайте так.
Вот тот же самый алгоритм, где все то же самое и работает без проблем, но здесь функции int zn() (СТОКОВОЕ ЗНАЧЕНИЕ) и int zn1() (ТОПОВОЕ ЗНАЧЕНИЕ) не перегрузочные.
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
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
 
int b,c,i,q=1,h;
class Stack
{
public:
int data[100];
    void push();
    void pop();
    int zn();
    int zn1();
};
void Stack::push()           //ВВЕДЕНИЕ В СТЕК
{
    for (int i=1; q!=0; i++)
    {cin >> data[i];
    q=data[i];
    b=i;}              //нужно чтобы присваивание было именно здесь
}
void Stack::pop()       //ДЕМОНСТРАЦИЯ ДАННЫХ В СТЕКЕ
{
c=b;
for (c--; c!=0; c--)
{cout << data[c] << "\n";}
}
int Stack::zn()       //ЗНАЧЕНИЕ СТОКОВОЕ
{h=1;
return (data[h]);
}
int Stack::zn1()          //ЗНАЧЕНИЕ НА ВЕРШИНЕ СТЕКА
{
return (data[--b]);
}
int main()
{SetConsoleOutputCP(1251);
int b,data[100];
    Stack S;
    cout << "Vvedite dannye v stek\n";
    cout << "Dlia ostanovki vvoda nazmite '0'" << endl;
    S.push();
    cout << "Rezultat:\n";
    S.pop();
    cout << "Stokovoe znachenie:\n"<<S.zn()<<endl;
    cout << "Znachenie na vershine steka:\n"<<S.zn1()<<endl;
 
return 0;
}
Функции в данном алгоритме:
C++
1
2
3
4
int Stack::zn()       //ЗНАЧЕНИЕ СТОКОВОЕ
{h=1;
return (data[h]);
}
и
C++
1
2
3
4
int Stack::zn1()          //ЗНАЧЕНИЕ НА ВЕРШИНЕ СТЕКА
{
return (data[--b]);
}
Функции в алгоритме где они должны быть перегруженными:
C++
1
2
3
4
long Stack::zn(long h)       //ЗНАЧЕНИЕ СТОКОВОЕ
{h=1;
return (data[h]);
}
и
C++
1
2
3
4
int Stack::zn(int b)          //ЗНАЧЕНИЕ НА ВЕРШИНЕ СТЕКА
{
return (data[--b]);
}
...найдите хоть одно отличие...
Фунции записаны также кроме их названия. Так почему же в перегрузочном варианте не работает?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru