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

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

Войти
Регистрация
Восстановить пароль
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

Классы (дружественные функции) - C++

26.12.2012, 18:58. Просмотров 218. Ответов 0
Метки нет (Все метки)

Почему в функции min_element(); не инициализирована k? Я же описал функцию в классе MIN?
Программа просто выводит минимальный элемент массива.
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
class MIN;
 
class Array{
      
public:
       Array(int);
       ~Array();
       void out();
       void min_element();
private:
        int n;
        int* arr;
        };
 
 
class MIN{
      
private:
        int k;
public:
       MIN();
       friend void Array::min_element();
       };
                    
void Array::min_element(){
     k=arr[0];
     for(int i=0;i<n;i++)
       if(arr[i]<k) k=arr[i];
     cout<<"\nMin element is "<<k;
     }
 
int main()
{
    {
    srand(time(0));
    int n;
    cout<<"Enter size for array: ";
    cin>>n;
    Array Object(n);
    Object.out();
    min_element();
    cout<<endl;
    }
    system("pause");
    return 0;
}
             
MIN::MIN()
{
          k=0;
          }
Array::Array(int size=0){
                n=size;
                arr=new int[n];
                for(int i=0;i<n;i++)
                  arr[i]=rand()%10+0;
}
void Array::out(){
     for(int i=0;i<n;i++)
        cout<<arr[i]<< " ";
        }
Array::~Array(){
    delete [] arr;
    cout<<"Object destroyed!"<<endl;
}
Добавлено через 34 минуты
`int MIN::k' is private
Немного исправил, но все равно не работает ..
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
class MIN;
 
class Array{
      
public:
       Array(int);
       ~Array();
       void out();
       void min_element(MIN);
private:
        int n;
        int* arr;
        };
 
 
class MIN{
      
private:
        int k;
public:
       MIN();
       friend void min_element(MIN);
       };
                    
void Array::min_element(MIN Object){
     Object.k=arr[0];
     for(int i=0;i<n;i++)
       if(arr[i]<Object.k) Object.k=arr[i];
     cout<<"\nMin element is "<<Object.k;
     }
 
int main()
{
    {
    srand(time(0));
    int n;
    cout<<"Enter size for array: ";
    cin>>n;
    Array Object(n);
    MIN Object1;
    Object.out();
    Object.min_element(Object1);
    cout<<endl;
    }
    system("pause");
    return 0;
}
             
MIN::MIN()
{
          k=0;
          }
Array::Array(int size=0){
                n=size;
                arr=new int[n];
                for(int i=0;i<n;i++)
                  arr[i]=rand()%10+0;
}
void Array::out(){
     for(int i=0;i<n;i++)
        cout<<arr[i]<< " ";
        }
Array::~Array(){
    delete [] arr;
    cout<<"Object destroyed!"<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 18:58     Классы (дружественные функции)
Посмотрите здесь:

C++ Классы.Дружественные функции
C++ Дружественные функции и классы
Дружественные классы C++
Дружественные классы C++
Дружественные классы. C++
C++ Дружественные классы
Классы, матрицы, перегрузка операторов, дружественные функции C++
Дружественные классы эллипс и круг C++
Дружественные функции и классы C++
Дружественные перегрузки операторов и дружественные классы C++
Дружественные классы C++
C++ Шаблонные дружественные классы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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