Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2013, 07:11   #1
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию Ооп,класы,конструктор(с++)

Вобщем суть в том что нужно написать динамичиский масив чисел с помощью класов,использывать констор и диструктор.
Получилось чтото такое (не работает):
Код:
//---------------------------------------------------------------------------

#include<iostream>

using namespace std;
class Array
{
public:
  int x,i,k,m,n;
  double array ()
  {
    cout<<"Enter length of the array "<<endl;
    cin>>x;
     int *point=new int[x];
      for(i = 0; i < x; i++)
        {
          cout << "a("<<i+1<<"):";
          cin >> point[i];
         }
    cout << endl << " Enter array:" << endl<<endl;
      for(int i = 0; i < x; i++)
          cout << point[i] << "\t";

      for(i=0; i<x; i++)
      {
		    if(point[i]<0)
	       	k++;
      }
      for(i=0; i<x; i++)
      {
		    if(point[i]>0)
  	    	n++;
      }
      for(i=0; i<x; i++)
      {
	     	if(point[i]==0)
  		  	m++;
      }
  }
  void show_array ()
  {
cout<<"\n  The number of negative -"<<k<<'\n';
cout<<"\n  the number of positive - "<<n<<'\n';
cout<<"\n  the number of =0 - "<<m<<'\n';
  }

};

int main()
{
  Array Z;
  Z.array();
  Z.show_array ();
        return 0;
}
//---------------------------------------------------------------------------
Билдер конкретно жалуетса на все что в мейне,я думаю что строчка int x,i,k,m,n; не коректна но что с етим зделать хз

Последний раз редактировалось _yaroslav_; 06.04.2013 в 20:44.
_yaroslav_ вне форума Ответить с цитированием
Старый 06.04.2013, 07:35   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Для начала точку с запятой после определения класса поставьте...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 06.04.2013, 14:39   #3
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

готово )) а что дальше? (не помогло)
_yaroslav_ вне форума Ответить с цитированием
Старый 06.04.2013, 18:34   #4
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

дальше сть два варианта:
1. ждать телепатов
2. сообщите, что вам пишет компилятор, что не работает...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 06.04.2013, 19:43   #5
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

сечас жалуетса на точку с запятой после определения класа ,а раньше жалывалса на все что в мейне а иимено
[C++ Error] Unit1.cpp(47): E2176 Too many types in declaration
[C++ Error] Unit1.cpp(48): E2111 Type 'Array' may not be defined here
[C++ Error] Unit1.cpp(52): E2034 Cannot convert 'int' to 'Array'
_yaroslav_ вне форума Ответить с цитированием
Старый 06.04.2013, 19:49   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

В конце описания класса поставить точку с запятой, как сказал Ezhik Kihze.
После объявления заголовка функции в классе точку с запятой убрать.
Код:
double array () {}
И во второй функции также.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2013, 21:09   #7
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

Ага спасибо компелируетса, я стер кое что ненужное(подщот количества больше\меньше нуля) ,ругаетса ,вот код
Код:
#include<iostream>

using namespace std;
class Array
{
public:
  int x,i,k,m,n;
  void array ()
  {
    cout<<"Enter length of the array "<<endl;
    cin>>x;
     int *point=new int[x];
      for(i = 0; i < x; i++)
        {
          cout << "a("<<i+1<<"):";
          cin >> point[i];
         }
  }
  void show_array ()
  {
    cout << endl << " Enter array:" << endl<<endl;
      for(int i = 0; i < x; i++)
          cout << point[i] << "\t";
  }

};

int main()
{
  Array Z;
  Z.array();
  Z.show_array();
    system ("pause");
        return 0;
}
компилятор пишет
[C++ Error] Unit1.cpp(23): E2451 Undefined symbol 'point'

можно както между методами зделать как наследывание между класами?
_yaroslav_ вне форума Ответить с цитированием
Старый 06.04.2013, 21:16   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
#include<iostream>

using namespace std;

class Array
{
    int len;
    int *arr;
public:
    Array() : len(0), arr(NULL) {}
    void set_array()
    {
        cout << "Enter length of the array:" << endl;
        cin >> len;
        if (arr)
            delete []arr;
        arr = new int[len];
        for(int i = 0; i < len; ++i)
        {
            cout << "a(" << i + 1 << "):";
            cin >> arr[i];
        }
    }
    void show_array()
    {
        cout << "Array: " << endl;
        for(int i = 0; i < len; ++i)
            cout << arr[i] << "\t";
    }
    ~Array() {
        if (arr)
            delete []arr;
    }
};

int
main()
{
    Array Z;
    Z.set_array();
    Z.show_array();
    system("pause");
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2013, 23:47   #9
_yaroslav_
Пользователь
 
Регистрация: 11.02.2013
Сообщений: 34
По умолчанию

спасибо только можно оеснить смысл строчки
Код:
Array() : len(0), arr(NULL) {}
и ~Array() используетса вмести с show_array или для удаления масива нужно его отдельно в мейне прописать?
_yaroslav_ вне форума Ответить с цитированием
Старый 07.04.2013, 00:08   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

http://valera.asf.ru/cpp/book/c14.html - со слов "Существует и альтернативный синтаксис: список инициализации членов, в котором через запятую указываются имена и начальные значения."

Эта строчка инициализирует поля класса.

~Array() - деструктор класса. Он вызывается при уничтожении объекта класса.

А вообще, неплохо прочесть всю статью целиком.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 07.04.2013 в 00:10.
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програма.Связаной список,класы Флинт Помощь студентам 2 25.04.2011 23:18
С++ (конструктор, деструктор, копирующий конструктор) Jane-sad Помощь студентам 2 01.10.2010 10:01
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55