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

class и error C2352 - C++

Восстановить пароль Регистрация
 
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 13:52     class и error C2352 #1
Помогите исправить. Ругается на
C++
1
std::cout<<"res"<<vector::resultzpr2(a,b);
В чем я неправильно делаю? Если еще какие косяки найдете, буду рада узнать.
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
#include <iostream>
class vector
{
public:
    vector()
    {
        vector::n = n;
        vector::data = (int*)calloc(n, sizeof(int));
        vector::getvector();
    }
    void getvector()
    {
        for (int i = 0; i < vector::n; i++)
        {
            std::cout << "input element";
            std::cin >> vector::data[i];
            std::cout << std::endl;
        }
    }
    int resultzpr2(vector a, vector b)
    {
        int mina = 99999;
        int minb = 99999;
        for (int i = 0; i < vector::n || i < vector::n; i++)
        {
            if (vector::data[i] < mina) mina = vector::data[i];
            if (vector::data[i] < minb)minb = vector::data[i];
        }
        int result = 1;
        if (mina>minb)
        {
            for (int i = 0; i < vector::n; i++)
            {
                if (vector::data[i]>0) result *= vector::data[i];
            }
        }
        else
        {
            for (int i = 0; i < vector::n; i++)
            {
                if (vector::data[i]>0) result *= vector::data[i];
            }
        }
        return result;
    }
private:
    int* data;
    int n;
};
void main()
{
    int n;
    std::cin >> n;
    vector a;
    vector b;
    std::cout<<"res="<<vector::resultzpr2(a, b);
}
Добавлено через 6 минут
И да, там может быть полный бред(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
18.12.2013, 14:11     class и error C2352 #2
И да, там может быть полный бред(
Вот это ближе к истине )).
Напишите само задание, что нужно сделать.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
18.12.2013, 14:18     class и error C2352 #3
У тебя ж функция не статическая... надо сначала экземпляр создать, а потом вызывать от него. ну или сделай ту функцию static:
C++
1
static int resultzpr2(vector a, vector b)
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.12.2013, 14:18     class и error C2352 #4
C++
1
int resultzpr2(vector a, vector b)
Функция должна быть статическая
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 14:49  [ТС]     class и error C2352 #5
egor2116, произведение положительных элементов массива с минимальным элементом, используя класс.
monolit, я поняла, что не статическая, по коду ошибки видно, только вот в чем прикол статической и не статической функции, если вкратце?

Добавлено через 5 минут
Мда... и правда бред. Я знала!
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.12.2013, 14:57     class и error C2352 #6
Цитата Сообщение от Angeline Посмотреть сообщение
вот в чем прикол статической и не статической функции, если вкратце?
Статическую можешь вызывать class::method, а нестатическую только через созданный объект
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
18.12.2013, 15:18     class и error C2352 #7
произведение положительных элементов массива с минимальным элементом, используя класс.
Проясните ситуацию еще немного:
Можно использовать массив или для него нужно сделать класс-обвертку?(типа vector)
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 15:32  [ТС]     class и error C2352 #8
egor2116, ну массив написать собственным классом.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
18.12.2013, 15:39     class и error C2352 #9
ну массив написать собственным классом.
Ожидайте, идет процесс создания программы.
))
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 15:54  [ТС]     class и error C2352 #10
egor2116,
C++
1
#define WATING_MODE_ON
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
18.12.2013, 16:14     class и error C2352 #11
Как то так
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
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
 
typedef unsigned int uint;
 
namespace my
{
    class Vector
  {
    private:
            int * arr;
            uint SIZE;
    public:
           Vector(uint _SIZE = 5)
           {
             arr = new int[_SIZE];
             SIZE = _SIZE;
           }
           
           Vector(const Vector & v)
           {
             SIZE = v.size();
             arr = new int[v.size()];
             for(int i = 0; i < SIZE; ++i)
                arr[i] = v.getArray()[i];
           }
           
           int & operator [](uint index)
           {
             return arr[index];
           }
           
           int * getArray()const{ return arr; }
           uint size()const{ return SIZE; }
           uint lenght()const{ return SIZE; }
  };
  
  class Math
  {
    private:
            Math(){}
    public:
           static int max(Vector & arr)
           {
              int _max = arr[0];
              for(int i = 0; i < arr.size(); ++i)
                  if(_max < arr[i])
                     _max = arr[i];
              
              return _max;
           }
           
           static int min(Vector & arr)
           {
              int _min = arr[0];
              for(int i = 0; i < arr.size(); ++i)
                  if(_min > arr[i])
                     _min = arr[i];
                     
              return _min;
           }
           
           static bool positive(int var)
           {
              return var > 0;
           }
           
           static bool negative(int var)
           {
              return var < 0;
           }
           
           static int product(Vector & arr)
           {
              int prod = 0;
              int _min = Math::min(arr);
              for(int i = 0; i < arr.size(); ++i)
                 if(Math::positive(arr[i]))
                    prod += (arr[i] * _min);     
 
              return prod;
           }    
  };
  
 
}
 
int main()
{   
    my::Vector vec(10);
 
    for(int i = 0; i < vec.size(); ++i)
       vec[i] = i + 1;
    
    for(int i = 0; i < vec.size(); ++i)
       std::cout << vec[i] << " ";  
    std::cout << std::endl; 
       
    std::cout << my::Math::product(vec) << std::endl;
    system("PAUSE");
    return 0;
}
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 19:05  [ТС]     class и error C2352 #12
egor2116, а что такое uint?
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
18.12.2013, 19:07     class и error C2352 #13
беззнаковый int
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 19:09     class и error C2352
Еще ссылки по теме:

class String, error lnk C++
C++ Create a programm that creates an object of created class Time and tests the member functions of class
C++ Error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::

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

Или воспользуйтесь поиском по форуму:
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 19:09  [ТС]     class и error C2352 #14
А, все, разобралась, благодарю, очень познавательная программка)
Yandex
Объявления
18.12.2013, 19:09     class и error C2352
Ответ Создать тему
Опции темы

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