[Rozdział 3] Wprawianie obiektu w ruch
Ostatnio zmodyfikowano 2017-04-19 14:31
Pungraf Temat założony przez niniejszego użytkownika |
[Rozdział 3] Wprawianie obiektu w ruch » 2017-04-19 13:32:57 Witam, podczas kursu napotkałem pewien problem. Kod aplikacji wydaje mi się identyczny z tym podanym w kursie, lecz kompilacja wyrzuca błędy z którymi nie mogę sobie poradzić ani znaleźć na nie odpowiedzi. Oto mój kod: #include <SFML/Graphics.hpp> #include <cmath> #include <vector> using namespace std; using namespace sf;
struct RObiekt { double x; double y; RObiekt( double f_x = 0.0, double f_y = 0.0 ) : x( f_x ) , y( f_y ) { } };
typedef vector < RObiekt > VObiektyT; VObiektyT vObiekty;
vObiekty.push_back( RObiekt( 50, 50 ) ); vObiekty.push_back( RObiekt( 100, 250 ) ); vObiekty.push_back( RObiekt( 300, 100 ) ); vObiekty.push_back( RObiekt( 500, 500 ) );
int main() { RenderWindow oknoAplikacji( VideoMode( 800, 600, 32 ), "Gra" ); while( oknoAplikacji.isOpen() ) { Event zdarzenie; while( oknoAplikacji.pollEvent( zdarzenie ) ) { if( zdarzenie.type == Event::Closed ) oknoAplikacji.close(); if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Escape ) oknoAplikacji.close(); } oknoAplikacji.display(); } return 0; }
Log z kompilacji wygląda następująco: 1>------ Build started: Project: Gra cwiczenie, Configuration: Debug Win32 ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(387,5): warning MSB8028: The intermediate directory (Debug\) contains files shared from another project (Konfiguracja SFML 2.0.vcxproj). This can lead to incorrect clean and rebuild behavior. 1>main.cpp 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3927: '->': trailing return type is not allowed after a non-function declarator 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3484: syntax error: expected '->' before the return type 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3613: missing return type after '->' ('int' assumed) 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C2371: 'vObiekty': redefinition; different basic types 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C2146: syntax error: missing ';' before identifier 'push_back' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3927: '->': trailing return type is not allowed after a non-function declarator 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3484: syntax error: expected '->' before the return type 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3613: missing return type after '->' ('int' assumed) 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C2371: 'vObiekty': redefinition; different basic types 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C2146: syntax error: missing ';' before identifier 'push_back' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3927: '->': trailing return type is not allowed after a non-function declarator 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3484: syntax error: expected '->' before the return type 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3613: missing return type after '->' ('int' assumed) 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C2371: 'vObiekty': redefinition; different basic types 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C2146: syntax error: missing ';' before identifier 'push_back' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3927: '->': trailing return type is not allowed after a non-function declarator 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3484: syntax error: expected '->' before the return type 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3613: missing return type after '->' ('int' assumed) 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C2371: 'vObiekty': redefinition; different basic types 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty' 1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C2146: syntax error: missing ';' before identifier 'push_back' 1>Done building project "Konfiguracja SFML 2.0.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Już przed kompilacją fragment kodu "vObiekty.push_back" jest podkreślony a informacja mówi:"This declaration has no storage class or type specifier" Przepisywałem wszystko parę razy i nie mam już pomysłu co może być źle. Z góry dziękuję za pomoc. |
|
Monika90 |
» 2017-04-19 14:31:12 vObiekty.push_back( RObiekt( 50, 50 ) ); vObiekty.push_back( RObiekt( 100, 250 ) ); vObiekty.push_back( RObiekt( 300, 100 ) ); vObiekty.push_back( RObiekt( 500, 500 ) );
Instrukcje muszą być wewnątrz jakiejś funkcji, np. main. |
|
« 1 » |