Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
#1

class и error C2352 - C++

18.12.2013, 13:52. Просмотров 671. Ответов 13
Метки нет (Все метки)

Помогите исправить. Ругается на
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 минут
И да, там может быть полный бред(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 13:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос class и error C2352 (C++):

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') - C++
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

class String, error lnk - C++
class String { friend std::istream&amp; operator&gt;&gt;(std::istream&amp;, String&amp;); // Функция ввода public: typedef...

Error C2259: cannot instantiate abstract class - C++
Всем добрый день. Создаю класс-наследник, переопределяю все виртуальные функции, но все равно ошибка &quot;error C2259: cannot instantiate...

error C2504: 'TwoDimentinalShape' : base class undefined - C++
Всем здравствуте, мой конкретный класс не видит свой абстрактный класс, может я что-то напутала, взгляните плиз свежим взглядом, а то я уже...

Не могу исправить error C2228: left of '.isWorked' must have class/struct/union - C++
Добрый день. Есть два взаимодружественных класса.Методом одного, меняю поля другого. Вот код: class Alarm; //класс сигнализации ...

error C2228: left of '.add' must have class/struct/union type. в чем ошибка? - C++
Помогите понять в чем ошибка. Пасиб. #include &lt;iostream.h&gt; class book { private: char name_book; char name_avtor; ...

13
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
18.12.2013, 14:11 #2
И да, там может быть полный бред(
Вот это ближе к истине )).
Напишите само задание, что нужно сделать.
0
monolit
186 / 185 / 22
Регистрация: 24.03.2011
Сообщений: 669
Завершенные тесты: 1
18.12.2013, 14:18 #3
У тебя ж функция не статическая... надо сначала экземпляр создать, а потом вызывать от него. ну или сделай ту функцию static:
C++
1
static int resultzpr2(vector a, vector b)
0
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.12.2013, 14:18 #4
C++
1
int resultzpr2(vector a, vector b)
Функция должна быть статическая
0
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 14:49  [ТС] #5
egor2116, произведение положительных элементов массива с минимальным элементом, используя класс.
monolit, я поняла, что не статическая, по коду ошибки видно, только вот в чем прикол статической и не статической функции, если вкратце?

Добавлено через 5 минут
Мда... и правда бред. Я знала!
0
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.12.2013, 14:57 #6
Цитата Сообщение от Angeline Посмотреть сообщение
вот в чем прикол статической и не статической функции, если вкратце?
Статическую можешь вызывать class::method, а нестатическую только через созданный объект
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
18.12.2013, 15:18 #7
произведение положительных элементов массива с минимальным элементом, используя класс.
Проясните ситуацию еще немного:
Можно использовать массив или для него нужно сделать класс-обвертку?(типа vector)
0
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 15:32  [ТС] #8
egor2116, ну массив написать собственным классом.
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
18.12.2013, 15:39 #9
ну массив написать собственным классом.
Ожидайте, идет процесс создания программы.
))
0
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 15:54  [ТС] #10
egor2116,
C++
1
#define WATING_MODE_ON
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
18.12.2013, 16:14 #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;
}
1
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 19:05  [ТС] #12
egor2116, а что такое uint?
0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
18.12.2013, 19:07 #13
беззнаковый int
0
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
18.12.2013, 19:09  [ТС] #14
А, все, разобралась, благодарю, очень познавательная программка)
0
18.12.2013, 19:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 19:09
Привет! Вот еще темы с ответами:

Ошибка при компиляции "error C2088: <<: недопустимо для class" - C++
Доброго времени суток :) у меня при компиляции возникает ошибка 1&gt;main.cpp(493): error C2088: &lt;&lt;: недопустимо для class суть в том...

Class & operator's |Error: undefined reference to operator - C++
Компилирует нормально, но когда хочу использовать оператор выдает ошибку:undefined reference to 'operator..(Fraction const&amp;, Fraction...

Error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std:: - C++
Здравствуйте! Сразу попрошу прощения за тупой вопрос. Почему при перегрузке operator &lt;&lt; код template&lt;class T&gt; ostream &amp;operator &lt;&lt;...

Работа с class ами. Заполнение дин. массива типа class - C++
Всем доброго времени суток! Это моя первая тема на этом сайте, поэтому если что извините меня (за неточности итд итп). Мне нужно...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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