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

Немогу понять как реализовать - C++

Восстановить пароль Регистрация
 
s1cret
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
16.11.2011, 18:44     Немогу понять как реализовать #1
Всем привет!! У меня сложилась такая непонятная ситуация !

У меня есть класс также на форме1 есть кнопка как реализовать так чтобы по нажатию на данную кнопку создавался новый объект моего класса
Если можете напишите код для кнопки или объясните как это можно реализовать,
Заранее очень благодарен!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wanderer1
23 / 23 / 4
Регистрация: 26.03.2011
Сообщений: 54
16.11.2011, 19:34     Немогу понять как реализовать #2
C++
1
2
3
4
5
6
7
8
9
class myClass1{....};
class myClass2
{public:
myClass1 mC;
myClass2(myClass1 _mC):mC(_mC){}};
virtual<myClass2>newObject;
в батоне:{
myClass1 mC;
newObject.push_back(myClass2(mC));}
так пойдет? вроде как должно работать

Добавлено через 16 минут
извиняюсь, че-то задумался. там vector нужен вместо virtual
s1cret
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
16.11.2011, 19:47  [ТС]     Немогу понять как реализовать #3
может какие то системные файлы прикрепить надо?\
а то он ругается на эту строчку

virtual<myClass2>newObject;

выдает следующие ошибки :


[C++ Error] Unit1.cpp(22): E2092 Storage class 'virtual' is not allowed here
[C++ Error] Unit1.cpp(22): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(42): E2451 Undefined symbol 'newObject'
Wanderer1
23 / 23 / 4
Регистрация: 26.03.2011
Сообщений: 54
16.11.2011, 19:58     Немогу понять как реализовать #4
я и говорю, ошибка там. там вместо virtual vector нужен. и еще добавь #include<vector>
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
16.11.2011, 20:04     Немогу понять как реализовать #5
C++
1
2
3
4
5
6
int indexMy=0;
class MY{....}
My *my= new My[0]
в батоне
  indexMy++;
  realloc(my,indexMy);
s1cret
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
16.11.2011, 21:16  [ТС]     Немогу понять как реализовать #6
не знаю где ошибка но при создании третьего объекта вылетает ошибка вот сам проект
Вложения
Тип файла: 7z Новая папка (7).7z (2.9 Кб, 10 просмотров)
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
17.11.2011, 17:34     Немогу понять как реализовать #7
C++
1
2
3
4
5
6
7
8
int indexMy=-1;
class My{....}
My *my= new My[0]
в батоне
  indexMy++;
  realloc(my,indexMy*sizeof(My));
        
 //объекты нумеруются с нуля их количество равно indexMy+1
s1cret
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
18.11.2011, 16:50  [ТС]     Немогу понять как реализовать #8
нашел ошибку но все равно в чем то бок помогите найти ошибку!
realloc(my,indexMy*sizeof(My)); а этой строке при первом создании получается что мы умножаем на ноль так как indexMy=0;
проект прилагается и если несложно разъясните что значит My[0] и сама функция realloc
Заранее очень благодарен"!
Вложения
Тип файла: 7z Новая папка (8).7z (21.2 Кб, 9 просмотров)
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.11.2011, 18:26     Немогу понять как реализовать #9
Цитата Сообщение от s1cret Посмотреть сообщение
функция realloc
выделяет новую память

Добавлено через 3 минуты
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Unit15.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
   int indexMy[COLOR="Red"]=0[/COLOR];
My *my= new My[0];
int k=10;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
indexMy++;
realloc(my,indexMy*sizeof(My));
my[indexMy].a=k;
k++;
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 for(int i=0;i<(indexMy+1);i++)
Memo1->Text=Memo1->Text+my[i].a+"                                                    ";
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
Memo1->Text="";
}
//---------------------------------------------------------------------------
попробуй так(извени у меня нет mvs 2008 так что сам отладить твою прогу не могу)
s1cret
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 26
18.11.2011, 18:48  [ТС]     Немогу понять как реализовать #10
чего то мне никак не везет с этой прогой(
так выливает при создании 4-го объекта а до этого при создании 2-го объекта
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 21:33     Немогу понять как реализовать
Еще ссылки по теме:

C++ Немогу понять где ошибки
немогу понять ошибку C++
Ребята немогу понять задачу на С++ C++

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.11.2011, 21:33     Немогу понять как реализовать #11
попробуйте использовать вместо . знак ->

Добавлено через 2 минуты
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Unit15.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
My my[100];
int k=10;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
my[indexMy].a=k;
k++;
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 for(int i=0;i<(indexMy+1);i++)
Memo1->Text=Memo1->Text+my[i].a+"                                                    ";
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
Memo1->Text="";
}
//---------------------------------------------------------------------------
Добавлено через 14 секунд
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Unit15.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
My my[100];
int k=10;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
my[indexMy].a=k;
k++;
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 for(int i=0;i<(indexMy+1);i++)
Memo1->Text=Memo1->Text+my[i].a+"                                                    ";
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
Memo1->Text="";
}
//---------------------------------------------------------------------------
Добавлено через 1 час 51 минуту
знак -> нужен в старых кодах в последнем же надо использовать . для доступа к членам класса
Yandex
Объявления
18.11.2011, 21:33     Немогу понять как реализовать
Ответ Создать тему
Опции темы

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