Помогите новичку - в чем ошибка?
файл SPMainWin.h
#include "SPSettings.h"
void InitSettings();
//-------------------------------------------------
файл SPMainWin.cpp
#include "SPMainWin.h"
void InitSettings()
{
MainSettings.SCREEN_WIDTH = 640;
MainSettings.SCREEN_HEIGHT = 480;
MainSettings.TITLE = "SP";
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
InitSettings();
}
//-------------------------------------------------
файл SPSettings.h
#pragma once
#include <string>
class SPSettings {
public:
SPSettings(void);
~SPSettings(void);
typedef std::basic_string<char> TITLE;
typedef unsigned int SCREEN_WIDTH;
typedef unsigned int SCREEN_HEIGHT;
};
extern SPSettings MainSettings;
//-------------------------------------------------
файл SPSettings.cpp
#include "SPSettings.h"
SPSettings MainSettings;
SPSettings::SPSettings(void)
{
}
SPSettings::~SPSettings(void)
{
}
//-------------------------------------------------
Получаю ошибку
SPMainWin.cpp(20): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(21): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(22): error C2274: 'function-style cast' : illegal as right side of '.' operator
Может подскажете - в чем я не прав?
Цитата:
Originally posted by Soloik
//-------------------------------------------------
файл SPMainWin.h
#include "SPSettings.h"
void InitSettings();
//-------------------------------------------------
файл SPMainWin.cpp
#include "SPMainWin.h"
void InitSettings()
{
MainSettings.SCREEN_WIDTH = 640;
MainSettings.SCREEN_HEIGHT = 480;
MainSettings.TITLE = "SP";
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
InitSettings();
}
//-------------------------------------------------
файл SPSettings.h
#pragma once
#include <string>
class SPSettings {
public:
SPSettings(void);
~SPSettings(void);
typedef std::basic_string<char> TITLE;
typedef unsigned int SCREEN_WIDTH;
typedef unsigned int SCREEN_HEIGHT;
};
extern SPSettings MainSettings;
//-------------------------------------------------
файл SPSettings.cpp
#include "SPSettings.h"
SPSettings MainSettings;
SPSettings::SPSettings(void)
{
}
SPSettings::~SPSettings(void)
{
}
//-------------------------------------------------
Получаю ошибку
SPMainWin.cpp(20): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(21): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(22): error C2274: 'function-style cast' : illegal as right side of '.' operator
Может подскажете - в чем я не прав?
//-------------------------------------------------
файл SPMainWin.h
#include "SPSettings.h"
void InitSettings();
//-------------------------------------------------
файл SPMainWin.cpp
#include "SPMainWin.h"
void InitSettings()
{
MainSettings.SCREEN_WIDTH = 640;
MainSettings.SCREEN_HEIGHT = 480;
MainSettings.TITLE = "SP";
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
InitSettings();
}
//-------------------------------------------------
файл SPSettings.h
#pragma once
#include <string>
class SPSettings {
public:
SPSettings(void);
~SPSettings(void);
typedef std::basic_string<char> TITLE;
typedef unsigned int SCREEN_WIDTH;
typedef unsigned int SCREEN_HEIGHT;
};
extern SPSettings MainSettings;
//-------------------------------------------------
файл SPSettings.cpp
#include "SPSettings.h"
SPSettings MainSettings;
SPSettings::SPSettings(void)
{
}
SPSettings::~SPSettings(void)
{
}
//-------------------------------------------------
Получаю ошибку
SPMainWin.cpp(20): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(21): error C2274: 'function-style cast' : illegal as right side of '.' operator
SPMainWin.cpp(22): error C2274: 'function-style cast' : illegal as right side of '.' operator
Может подскажете - в чем я не прав?
SCREEN_WIDTH
SCREEN_HEIGHT
TITLE
Это названия определенных тобой типов, а не переменных. Когда ты пытешься присвоить им значения, это все равно что писать:
int=25;
Чтобы можно было присваивать значения, тебе нужно создать переменные этих типов.
А вообще, вместо типов лучше сразу используй переменные
вместо
typedef std::basic_string<char> TITLE;
typedef unsigned int SCREEN_WIDTH;
typedef unsigned int SCREEN_HEIGHT;
пиши
char* TITLE;
unsigned int SCREEN_WIDTH;
unsigned int SCREEN_HEIGHT;
Спасибо - все понял. :}