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

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

Войти
Регистрация
Восстановить пароль
 
pun4er
6 / 6 / 1
Регистрация: 06.10.2010
Сообщений: 122
#1

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

27.09.2011, 13:32. Просмотров 622. Ответов 2
Метки нет (Все метки)

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

Инициализация массива через конструктор - C++
Есть код : class test { private: int x; public: test() : x{ 0, 0 } {} }; Не понимаю почему не работает? Кому не тяжело...

Инициализация массива объектов через конструктор - C++
class some { public: some(){} some(int b):a(b){} void Set(int b){a=b;} private: int a; };

Инициализация объектов через конструктор(объясните в чём ошибка) - C++
Вот программа! #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class GradeBook { public: GradeBook(); ...

Конструктор и Деструктор (инициализация массивов) - C++
Стал вопрос по инициализации массивов (внутри класса) в конструкторе, но ни методичка, ни гугль явного ответа не дали, возможно массив...

Ругается new при создании динамического массива через перегруженный конструктор - C++
Перегрузил конструктор: class Library { public: Library(void) //конструктор библиотеки без заданного типа { ...

Как задать размер массива, который является членом класса, через конструктор? - C++
Почему так? И как же тогда задать размер этого массива? class Test { public: Test(int size) : arrSize(size){}; private: ...

2
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
27.09.2011, 23:05 #2
конструктор определять надо)
1
pun4er
6 / 6 / 1
Регистрация: 06.10.2010
Сообщений: 122
28.09.2011, 18:20  [ТС] #3
Да, уже всё определил)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2011, 18:20
Привет! Вот еще темы с ответами:

Вопрос про конструктор - C++
Обязательно ли делать конструктор по умолчанию для класса, экземпляр которого входит в другой класс? Например так: class Class2 ...

Вопрос про конструктор - C++
цитата исходного кода из книги: class stock{ ... public: stock(); //Типа объявление конструктора по умолчанию чтоли... ...

Конструктор копирования(быстрый вопрос) - C++
Вроде бы все просто и логично, но в итоге выполнения B не копируется в A :C why? #include &lt;iostream&gt; using namespace std; class...

Вопрос про конструктор и инициализвцию - C++
class test { int a; char name; string name2; public: test(int a,char* name, ....) : a(a), .....{} }; если стринг как...


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

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

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