Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив обьектов 
:(
    Опции темы
555shiro
Дата 27.5.2010, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



Здравствуйте!
  Скажите пожалуйста,что такое массив обьектов? и если можно привести простой пример
PM MAIL   Вверх
toxx
Дата 27.5.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Код

class A
{
     ....
};
.....

A mas[5];

PM MAIL   Вверх
555shiro
Дата 28.5.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



здесь я попытался написать простенькую программку на эту тему,но есть ошибки,я вижу пока только одну,не могли бы подсказать как исправить её? (отметил в комментарии)

Код

#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>

class samp
{
int a,b;
public:
samp(int n,int m){a=n,b=m;}
int get_a(){return a;}
int get_b(){return b;}
};
void main ()
{
samp ob[4]={samp(1,2)};  //  не понимаю,в чем здесь ошибка?
for(int i=0;i<4;i++)
{
cout<<ob[i].get_a()<<" ";
}
getch ();
}

PM MAIL   Вверх
Ozerich
Дата 28.5.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



У тебя первый элемент массива инициализируется конструктором с 2 параметрами, а остальные конструктором без параметров, а он у тебя не определен.
Код

class samp
{
int a,b;
public:
samp(){}   //вот этот
samp(int n,int m){a=n,b=m;}
int get_a(){return a;}
int get_b(){return b;}
};


Это сообщение отредактировал(а) Ozerich - 28.5.2010, 11:55
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
555shiro
Дата 28.5.2010, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



 то есть вот так?

Код

#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
class samp
 {
int a;
public:
samp(int n){a=n;}
int get_a(){return a;}
};
void main ()
{  int i;
samp ob[4]={1,2,3,4};
for(int i=0;i<4;i++)
{
cout<<ob[i].get_a()<<" ";
;

}
getch ();
}

PM MAIL   Вверх
Ozerich
Дата 28.5.2010, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 2.8.2009
Где: Минск, Беларусь

Репутация: 4
Всего: 5



Так можно, потому что все 4 элемента массива инициализируются конструктором с одним параметром
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP  Developer
PM MAIL ICQ Skype   Вверх
555shiro
Дата 28.5.2010, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



программа конечно слишком проста..хочется немного усложнить..эта программы выводит только 4 числа которые инициализированы..вообщем хотелось бы чтобы программа помимо этого ещё что то делала...например а как сделать чтобы он к этим числам прибавлял какое нибудь число..и выводил результат?
вот моя попытка...
Код

#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
class samp
 {
int a;
public:
samp(int n){a=n;}
int get_a(){return a;}
};
void main ()
{  int i,x;
samp ob[4]={1,2,3,4};
for(int i=0;i<4;i++)
 
х=ob[1]+1;               // здесь компилятор ошибку выдает,видимо я совсем глупость какую то слепил
cout<<"x="<<x<<" ";
 
getch ();
}

PM MAIL   Вверх
mrbrooks
Дата 28.5.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



555shiro, для того, что бы не было ошибки на этой строке, нужно перегрузить оператор + для своего класса
PM MAIL   Вверх
555shiro
Дата 28.5.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



и как перегружать?
PM MAIL   Вверх
ИванМ
Дата 28.5.2010, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 3
Всего: 23



Код

class samp
 {
int a;
public:
samp(int n){a=n;}
int get_a(){return a;}
const samp& operator+(int val)
{
    return samp(a+val);
}
};


Еще надо перегрузить оператор << для потоков вывода.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.