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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2016, 14:16   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Класс содержащий массив объектов другого класса Cli

Добрый день. Нужно создать класс,содержащий массив объектов другого класса:
Код:
ref class Queue1
{
public:
	Queue1(void);
	array <Person^> ^queue;
	  	Queue1(const Queue1^);
	array <Person^>^ SetDat( array<String^>^ gc1, double x, double y, double z)
	{
		queue=gcnew array<Person ^>(3);
		queue[0]=gcnew Person();
		queue[0]->name=gc1[0];
	return queue;
	}
	
   
};
Класс Person
Код:

ref class Person:Date
{
	 
public:
	Person(void);
	
	 String ^name;
     String ^surname;
         String ^birthday;
        String ^male_female;
          String ^activity;
		  	Person(const Person^);
 void Set_Data( String ^ ,  String ^,  String ^,  String ^,  String ^, double , double , double );
        
      
     int Check_Data();
  
     
           ~Person() { } 
	
};
Main
Код:
Queue1 arr= gcnew Queue1(); 
				arr.SetDat(gc1,x,y,z);
			 //  this->richTextBox1->AppendText((arr.queue[0].name).ToString());
Возникли такие проблемы:
1.Объявление и инициализация объектов типа Queue.В функции main выдает ошибки:
Queue1: необъявленный идентификатор
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "arr"
error C2065: arr: необъявленный идентификатор
error C2061: синтаксическая ошибка: идентификатор "Queue1"
error C2065: arr: необъявленный идентификатор
error C2228: выражение слева от ".SetDat" должно представлять класс, структуру или объединение
,хотя в файле есть:
#include "Date.h"
#include "Person.h"
#include "Queue1.h"
2. Вывод объектов типа Queue1. Как правильно вывести в richTextBox1 значения объекта arr?
// this->richTextBox1->AppendText((arr.queue[0].name).ToString());[/B]
Очень нужна помощь.Спасибо!!
Вероника99 вне форума Ответить с цитированием
Старый 27.05.2016, 14:21   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

У вас компилятор не видит Queue1. Причем здесь массивы не понятно. Выложите минимальный проект, чтобы пощупать.
p51x вне форума Ответить с цитированием
Старый 27.05.2016, 14:44   #3
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

В архиве
Вложения
Тип файла: rar 1.rar (2.7 Кб, 10 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 27.05.2016, 14:59   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А вы прочитайте, что вам иде еще до компиляции говорит.

Например:
Цитата:
Queue1 arr= gcnew Queue1();
Слева Queue1, а справа Queue1^

И зачем вам в Queue1.h понадобилось включать Form2.h? А потом и обратно...
p51x вне форума Ответить с цитированием
Старый 27.05.2016, 15:08   #5
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Не совсем поняла,как правильно объявить?
Такой вариант не проходит:
Код:
Queue1 ^arr= gcnew Queue1();
Вероника99 вне форума Ответить с цитированием
Старый 27.05.2016, 15:28   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

что пишет?
p51x вне форума Ответить с цитированием
Старый 27.05.2016, 15:47   #7
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Код:
Queue1 ^arr= gcnew Queue1();
				arr->SetDat(gc1,x,y,z);
Те же ошибки и еще
выражение слева от "->SetDat" должно указывать на тип класса, структуры или объединения либо на универсальный тип
тип: 'unknown-type'
а при варианте:
Код:
Queue1 ^arr= gcnew Queue1();
				arr.SetDat(gc1,x,y,z);
Выражение слева от ".SetDat" должно представлять класс, структуру или объединение
тип: Queue1 ^
возможно, имеется в виду "->"
+ те же ошибки
Вероника99 вне форума Ответить с цитированием
Старый 27.05.2016, 15:50   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем вам свой класс Queue1 вообще, тем более с такой странной реализацией? Берите стандартные Queue, List и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.05.2016, 15:52   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

вы лишние инклуды убрали?

Alex11223, может по лабе надо реализовать свое...
p51x вне форума Ответить с цитированием
Старый 27.05.2016, 16:01   #10
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Пробовала убрать
#include "Person.h"
#include "Queue1.h"
тоже самое

Скинула проект http://ifolder.com.ua/vh6m7gtd77pw.html
на форум закинуть не могу из-за превышения размера

Последний раз редактировалось Alex11223; 27.05.2016 в 16:09.
Вероника99 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблонный массив объектов класса - C++ Андрей Иванов Помощь студентам 2 01.10.2015 17:07
В классе создать массив элементов из другого класса LadyDisco Общие вопросы по Java, Java SE, Kotlin 0 02.05.2011 02:48
Массив объектов класса. zipwind Общие вопросы C/C++ 8 01.05.2011 20:56
динамический массив объектов класса. С++ Шиншилка Помощь студентам 8 25.04.2011 17:58
С++ Создать класс содержащий 3х-мерный массив int'ов, заполнять с помощью генератора случайных чисел vipER Помощь студентам 1 22.09.2007 22:08