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

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

Войти
Регистрация
Восстановить пароль
 
Daemon_88
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 54
#1

Дружественная функция - C++

13.11.2013, 18:28. Просмотров 290. Ответов 5
Метки нет (Все метки)

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
#include <iostream>
#include <math.h>
using namespace std;
class massiv
{ int len,*p_mas;
public :
    massiv()
    {}
    massiv (int n)  
    {   int *p;
    p= new int(n);
    p_mas= p;
    len=n;
    for( ; p<p_mas+len ; p++)
        cin>>*p;
    }
    friend int search(massiv & temp)
    {
        int *p;
        p=p_mas ;
        int max=*p;
        p++;
        for( ; p<p+len ; p++)
        {
            if(*p>max)
                max=*p;
        }
        return max;
    }
 
    void display()      
    {   int *p;
    for(p=p_mas ; p<p_mas+len ; p++)
        cout<<(*p)<<"  ";
    cout<<endl;
    }
    int operator ++ ()  
    {   int *p,summ=0;
    for(p=p_mas ; p<p_mas+len ; p++)  
    {
        if(*p%2==0)
            summ+=*p;
    }
    return summ;
    }
};
void main()
{   
    massiv s1(10);
    s1.display();
    cout<<++s1<<endl;
    cout<<search(s1)<<endl;
}
необходимо создать дружественную функцию для поиска максимального эл-та массива, только она и не работает в проекте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 18:28     Дружественная функция
Посмотрите здесь:

Дружественная 2-м классам функция. C++
Классы, конструктор, дружественная функция C++
C++ Дружественная функция
Дружественная функция. Графы C++
C++ Дружественная функция
C++ Шаблон класса и дружественная функция
C++ базовый,дочерний , дружественная функция
Дружественная функция подсчета площадей C++
C++ Дружественная функция. Класс Passport
C++ Дружественная функция класса
C++ Дружественная функция
C++ Не вызывается дружественная функция

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,995
13.11.2013, 18:39     Дружественная функция #2
у вас max имеет локальную область действия, не?
Daemon_88
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 54
13.11.2013, 18:42  [ТС]     Дружественная функция #3
получается да
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,995
13.11.2013, 18:43     Дружественная функция #4
ну в этом косяк
Daemon_88
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 54
13.11.2013, 19:12  [ТС]     Дружественная функция #5
всё равно не катит
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,995
13.11.2013, 21:48     Дружественная функция #6
ещё смотрите в самой функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    friend int search(massiv & temp)
    {
        int *p;
        p=p_mas ;
        int max=*p;
        p++;
        for( ; p<p+len ; p++)
        {
            if(*p>max)
                max=*p;
        }
        return max;
    }
вы передаёте в неё объект, а обращаетесь к указателю без определения на объект, т.е надо делать temp.p_mas

и вообще зря вы через арифметику указателей делаете циклы, не наглядно
Yandex
Объявления
13.11.2013, 21:48     Дружественная функция
Ответ Создать тему
Опции темы

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