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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2013, 13:52   #1
FullVenic
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 59
По умолчанию Особенности обьявления класса

Здравствуйте, нашел такую странную особенность Visual Studio, подскажите пожалуйста с чем связано, в каком направлении думать?


Собственно пишу игру с библой SFML. Пишу свой класс:
(лишний код убран)

проблема зарыта в создании класса Text в конструкторе, неправильно загружается Font. Если font переинициализировать в ф-ции Draw(); то будет работать. Также если в констукторе создать Font динамически: Font * font = new Font;
или же
static Font font;
снова будет работать. В чем подвох?

Код:
class Button
{
			
	Text *m_pButtonText;



	public:
	////////////////////////////////////////////////////////////////
	////////////////////////CONSTRUCTOR/////////////////////////////
	////////////////////////////////////////////////////////////////
	Button(char * pButtonText, ):
	/////////////////////////////////////////////////////
			m_pButtonText(new Text), 
			
	/////////////////////////////////////////////
	{

		//static sf::Font pFont;
               // sf::Font *pFont = new Font;

                sf::Font pFont;
		pFont.loadFromFile("arial.ttf");
			
		sf::Font pFont2;
		pFont2.loadFromFile("arial.ttf");


		m_pButtonText->setFont(pFont);
		
		m_pButtonText->setString(pButtonText);
		m_pButtonText->setCharacterSize(16);
		m_pButtonText->setColor(Color(60, 200, 230, 250));
		m_pButtonText->setStyle( sf::Text::Bold );

		FloatRect BtnRect = m_pButtonText->getGlobalBounds(); 
		m_pButtonText->setPosition(  (m_Button_Width - BtnRect.width )/2 + m_x ,  (m_Button_Height - BtnRect.height)/2 + m_y  );
		
		
		


		pButtonText = NULL;
		m_PRESSED = NULL, m_ACTIVE = NULL;

	}

	void Draw(RenderTexture * BitMap)
	{
		/*Font font; 
		font.loadFromFile("arial.ttf");
			
		m_pButtonText->setFont(font);
		m_pButtonText->setString(L"New Game"); */
		


		BitMap->draw(*m_pButtonText);

	}
FullVenic вне форума Ответить с цитированием
Старый 13.08.2013, 14:07   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

В том, что локальные переменные живут только внутри блока, не?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 13.08.2013, 14:14   #3
FullVenic
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 59
По умолчанию

не, дело в том что Text не присваивает указатель Fonta , а копирует.
FullVenic вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отношение обьявления базового и исходного класса к размеру программы Delphi_ProGer Помощь студентам 3 24.06.2011 00:06
throw() после обьявления функции AxenicX Общие вопросы C/C++ 1 21.10.2009 23:32
Создание простейшего обьявления coramba Microsoft Office Word 3 11.07.2008 12:47
Подача обьявления на е1 CAHuT@p Работа с сетью в Delphi 1 30.04.2008 12:55