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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2013, 21:44   #1
Максим 116
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 31
Восклицание Ошибки в C++/CLI

Пишу в VS2005

error C3845: 'KURSOVAYA::Cars::_carsCount': only static data members can be initialized inside a ref class or value type (6 строка)
error C3767: 'KURSOVAYA::Refill::X::get': candidate function(s) not accessible (44 строка)
error C3767: 'KURSOVAYA::Refill::Y::get': candidate function(s) not accessible (44 строка)

Код:
   ref class Cars : Form
    {
	public: 
		ArrayList ^aL;
        int n;
        int _carsCount = 2; //  кол-во машин (начальное значение 2 )
	private: 
		Refill ^refill;

	public: Cars()
        {
            refill = gcnew Refill(370, 100);
        }

	 void Start()          // Стартовать
        {
            for (int i = 0; i < aL->Count; i++)
            {
                dynamic_cast<Car^>(aL[i])->Start();
            }
        }
	 void Suspend()     // Возобновить
        {
            for (int i = 0; i < aL->Count; i++)
            {
                dynamic_cast<Car^>(aL[i])->Suspend();
            }

        }

	 void Resume()      // Приостановить
        {
            for (int i = 0; i < aL->Count; i++)
            {
                dynamic_cast<Car^>(aL[i])->Resume();
            }
        }




	virtual void OnPaint(PaintEventArgs ^e)	override //рисование
        {

			e->Graphics->DrawEllipse(gcnew Pen(Color::Black, 40), 20, 20, 320, 320);
            e->Graphics->DrawEllipse(gcnew Pen(Color::Black, 40), 65, 65, 230, 230);
            e->Graphics->FillRectangle(gcnew SolidBrush(Color::Brown), refill->X, refill->Y, 70, 170);
            for (int i = 0; i < aL->Count; i++)
            {
                //рисование машины
                e->Graphics->DrawRectangle(gcnew Pen(Color::Red, 4), dynamic_cast<Car^>(aL[i])->X, dynamic_cast<Car^>(aL[i])->Y, 20, 20);
                e->Graphics->DrawString(dynamic_cast<Car^>(aL[i])->N.ToString(), Font, gcnew SolidBrush(Color::White), dynamic_cast<Car^>(aL[i])->X + 4, dynamic_cast<Car^>(aL[i])->Y + 4);
            }
        }
       /* protected override void OnClosed(EventArgs ^e) //закрытие
        {
            //for (int i = 0; i < aL.Count; i++) 
            // aL[i].Finish();

        }*/
    };
Максим 116 вне форума Ответить с цитированием
Старый 25.12.2013, 22:01   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Инициализируй поле _carsCount внутри конструктора (или статическим его сделай, в зависимости от нужного поведения). И координаты в refill публичными.
Son Of Pain вне форума Ответить с цитированием
Старый 25.12.2013, 22:45   #3
Максим 116
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 31
По умолчанию

С координатами разобрался,а как сделать статическим?
Объявить как static?
Максим 116 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++/CLI ошибки при компиляции Максим 116 Помощь студентам 1 24.12.2013 21:42
с++/cli out параметры D][mon Общие вопросы .NET 0 22.05.2013 22:39
c++/cli danzel1 Общие вопросы C/C++ 3 25.07.2011 17:11
C++\CLI + DDK Eros Общие вопросы .NET 1 20.05.2011 14:50
C/C++/CLI. Ynxarmed Visual C++ 1 31.08.2010 07:43