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

Инициализация массива через конструктор. Вопрос. - C++

Восстановить пароль Регистрация
 
pun4er
6 / 6 / 1
Регистрация: 06.10.2010
Сообщений: 122
27.09.2011, 13:32     Инициализация массива через конструктор. Вопрос. #1
Всем привет. Есть скудная вытяжка из методички:
"Массив объектов
В случае, когда возникает необходимость иметь несколько объектов одного и того же класса, то целесообразно будет создавать массивы объектов.
myclass ob[4]; //создается массив из четырех объектов класса myclass.
Для инициализации элементов массива может быть использован конструктор.
const int STUD=3;
student std [STUD]=
{
student (“Petrov”,19),
student (“Sidorov”,20),
student (“Nosov”,18)
};"
Мне нужно применить это к моей задаче. У меня класс с именем Stock, получается имя конструктора такое же.
как мне проинициализировать этот массив с помощью конструктора? Подставлял имя вместо student, не работает.
Вот мой код. Нужно изменить его, чтобы был массив из 5ти элементов. Чтобы каждый раз не писать ob1,ob2,ob3,...
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<conio.h>
#include<string>
#define SIZE 50
#define NUM 5
using namespace std;
 
class Stock
{
    char name[SIZE];
    int a;
    double p,s;         //а - кол-во акций в пакете, р - цена каждой акции, s - общая стоимость всех акций
    double set_tot(){s=a*p; return s;}
    public:
    Stock();
    void acquire(char*,double,double);
    void buy(int);
    void sell(int);
    void update(double);
    void show();
};
 
void Stock::acquire(char *name1,double a1,double p1)
{
    strcpy(name,name1);
    a=a1;
    p=p1;
}
 
void Stock::buy(int add)
{
    if(add>=0) a=a+add;
    else {cout<<"\n\nError! Amount of stocks must be > or = 0!";return;};
}
 
void Stock::sell(int minus)
{
    if(minus>a) {cout<<"\n\nError! Don't cunning!";return;}
    if(minus>=0) a=a-minus; 
    if(minus<0) {cout<<"\n\nError! Amount of stocks must be > or = 0!";return;}
}
 
void Stock::update(double u)
{
    p=u;
}
 
void Stock::show()
{
    cout<<'\n';
    cout<<"\nCompany's name: "<<name<<"\nAmount of stocks: "<<a<<"\nPrice of one stock: "<<p<<"\nPrice of all stocks: "<<set_tot();
}
 
 
 
void main()
{
    Stock ob,ob1;
    ob.acquire("Telnet",5,10.3);
    ob.buy(2);
    ob.sell(3);
    ob.update(11.5);
    ob1.acquire("Gandalf",10,8.5);
    ob1.buy(2);
    ob1.sell(7);
    ob1.update(10.2);
    ob.show();
    ob1.show();
    getch();
}
Добавлено через 16 часов 48 минут
вопрос решен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 13:32     Инициализация массива через конструктор. Вопрос.
Посмотрите здесь:

Вопрос про конструктор C++
Вопрос про конструктор и инициализвцию C++
C++ Вопрос про конструктор
Конструктор копирования(быстрый вопрос) C++
Конструктор и Деструктор (инициализация массивов) C++
Ругается new при создании динамического массива через перегруженный конструктор C++
C++ Инициализация массива через конструктор
C++ Инициализация массива объектов через конструктор

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
27.09.2011, 23:05     Инициализация массива через конструктор. Вопрос. #2
конструктор определять надо)
pun4er
6 / 6 / 1
Регистрация: 06.10.2010
Сообщений: 122
28.09.2011, 18:20  [ТС]     Инициализация массива через конструктор. Вопрос. #3
Да, уже всё определил)
Yandex
Объявления
28.09.2011, 18:20     Инициализация массива через конструктор. Вопрос.
Ответ Создать тему
Опции темы

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