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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2012, 15:48   #1
sversus
Пользователь
 
Регистрация: 08.12.2012
Сообщений: 17
По умолчанию Недопустимый неполный тип

У меня есть класс Factory, когда я стараюсь вызвать его в main(), то пишет visual studio выдает ошибку "Недопустимый неполный тип".

Код:
void main()
{
	Factory f1;
}
Вызываю ведь как положено.


Класс Factory:
Factory.h
Код:
#pragma once
#include "header.h"
#include "Tank.h"


class Factory
{
private:

	static int i_fabric;


	int _iFabric;
	int _tail;
	int _tailBattle;
	
	int _time;
	int _progress;
	bool _progressTR;


	int _lTank;
	int _nTank;
	int _hTank;

	Tank *_tank;
	Tank *_tankBattle;
	Tank *_buf;

public:
	Factory(void);
	~Factory(void);


	void _push(int hp, int armor, int damage);
	void _pushBattle();

	void _pop();
	void _popBattle();

	void _fabrication();

};
------------------------------------------------------------------
Factory.cpp
Код:
#include "Factory.h"


int Factory::i_fabric = 0;


Factory::Factory(void)
{

	_tail = 0;

	_tailBattle = 0;

	_progress = 0;
	_progressTR = false;

	i_fabric++;
	_iFabric = i_fabric;


	_lTank = 0;
	_nTank = 0;
	_hTank = 0;

}


Factory::~Factory(void)
{

	i_fabric--;

	delete _buf;
	delete _tank;
	delete _tankBattle;
}



void Factory::_push(int hp, int armor, int damage)
{
	_buf = new Tank[++_tail];
	_buf = _tank;
	delete _tank;

	_buf[_tail-1]._armor = armor;
	_buf[_tail-1]._hp = hp;
	_buf[_tail-1]._damage = damage;
	_buf[_tail-1]._score = _buf[_tail]._hp * 2 + _buf[_tail]._armor * 2 + _buf[_tail]._damage + 3;
	_buf[_tail-1]._timeBuild = _buf[_tail]._score / 50;

	_tank = new Tank[_tail];
	_tank = _buf;

	if (_buf[_tail-1]._hp >= 300)
	{
		_hTank++;
	}
	else if (_buf[_tail-1]._hp >= 200)
	{
		_nTank++;
	}
	else if (_buf[_tail-1]._hp >= 100)
	{
		_lTank++;
	}

	delete _buf;
}


void Factory::_pushBattle()
{
	_buf = new Tank[++_tailBattle];
	_buf = _tankBattle;
	delete _tankBattle;
	_tankBattle = new Tank[_tailBattle];

	_buf[_tailBattle] = _tank[0];

	_tankBattle = _buf;

	delete _buf;
}


void Factory::_pop()
{

	system("cls");
	
	for (int i = 1; i < _tail; i++)
	{
		_tank[i - 1] = _tank[i];
	}

	_tail--;

}


void Factory::_popBattle()
{

	for (int i = 1; i < _tailBattle; i++)
	{
		_tankBattle[i - 1] = _tankBattle[i];
	}

	_tailBattle--;

}


void Factory::_fabrication()
{

	cout << "Fabric " << _iFabric << '\n';
	cout << "Tail: ";

	int l = 0, n = 0, h = 0;

	for (int i = 0; i < _tail; i++)
	{

		if (_tank[i]._hp >= 300 && _tail > 0)
		{
			cout << "Hard tank " << ++h << ". ";
		}
		else if (_tank[i]._hp >= 200 && _tail > 0)
		{
			cout << "Normal tank " << ++n << ". ";
		}
		else if (_tank[i]._hp >= 100 && _tail > 0)
		{
			cout << "Light tank " << ++l << ". ";
		}

	}

	cout << '\n';


	cout << "Progress: \n";


	if (_progress == 0 && _progressTR == false && _tail > 0)
	{
		_time = time(NULL);
		_progressTR = true;
	}
	else if (_progress == 100)
	{
		_pushBattle();
		_pop();
		_progress = 0;
		_progressTR = false;
	}

	if (_progressTR == false)
	{
		for (int i = 0; i <= 102; i++)
		{
			cout << ' ';
		}
	}

	else if (_progressTR == true)
	{
		_progress = 100 * (time(NULL) - _time) / _tank[0]._timeBuild;
		cout << '[';
		for (int i = 0; i < _progress; i++)
		{
			cout << (char)219;
		}
		for (int i = 0; i <= 100 - _progress; i++)
		{
			cout << ' ';
		}
		cout << ']';
	}


}
Если можно то помогите по TeamViewer
sversus вне форума Ответить с цитированием
Старый 31.12.2012, 15:50   #2
sversus
Пользователь
 
Регистрация: 08.12.2012
Сообщений: 17
По умолчанию

Исходный код на всякий случай.
sversus вне форума Ответить с цитированием
Старый 31.12.2012, 15:59   #3
sversus
Пользователь
 
Регистрация: 08.12.2012
Сообщений: 17
По умолчанию

Проблему решил
У меня в main была подключена библиотека Tank.h вместо Factory.h
sversus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
select() -> recv(). Неполный прием посылки asdo C/C++ Сетевое программирование 0 05.10.2011 20:02
недопустимый составной файл К-а-т-я Общие вопросы Delphi 3 18.05.2010 09:34
Неполный путь к HTML-файлу в WebBrowser AbekIn3D Общие вопросы Delphi 2 31.10.2009 12:17
Run-time error '1004'. Недопустимый параметр! nikolai_P Microsoft Office Excel 2 20.04.2009 18:06
Недопустимый формат файла - перестал открываться файл!? runny Microsoft Office Excel 5 09.01.2009 12:42