Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ SFML" no appropriate default constructor available"

Ostatnio zmodyfikowano 2022-06-09 21:14
Autor Wiadomość
farethh
Temat założony przez niniejszego użytkownika
» 2022-06-09 20:15:22
C/C++
#pragma once

#include "Snake.h"
#include "Fruit.h"

class Game
{
private:
   
sf::VideoMode videoMode;
   
sf::RenderWindow * window;
   
sf::Event sfmlEvent;
   
bool endGame;
   
   
Snake snake;
   
/// tutaj
   
Fruit fruit;
   
/// tutaj
   
   
int points = 0;
   
   
sf::Font font;
   
sf::Text guiText;
   
sf::Text endGameText;
   
   
void initWindow();
   
void initVariables();
   
void initFonts();
   
void initText();
   
public:
   
Game();
   
~Game();
   
   
const bool & getEndGame() const;
   
const bool running() const;
   
void pollEvents();
   
   
void spawnFruit( const sf::RenderWindow & window );
   
   
void updatePlayer();
   
void updateCollison();
   
void updateGui();
   
void update();
   
   
void renderGui( sf::RenderTarget * target );
   
void render();
};
P-179535
pekfos
» 2022-06-09 20:21:25
Podałeś wszystkie błędy? Nie ma sensu żeby teraz było coś takiego, a nie wcześniej.
P-179536
farethh
Temat założony przez niniejszego użytkownika
» 2022-06-09 20:32:22
Cofnąłem kod do takiego jaki był na samym początku (taki jaki jest podany w 1 wiadomości)

I pojawiły się nowe błędy.


Screen z debuggera:
https://we.tl/t-oqOKBEFl60
P-179537
pekfos
» 2022-06-09 20:52:10
Coś dziwnego robisz. Skopiowałem cały ten kod i kompiluje się po samej zmianie konstruktora Game na mój. Podaj logi z kompilacji - zakładka Output obok tych błędów co pokazałeś.
P-179538
farethh
Temat założony przez niniejszego użytkownika
» 2022-06-09 20:53:26
Build started...
1>------ Build started: Project: SFML, Configuration: Debug x64 ------
1>Fruit.cpp
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Game.h(15,8): error C3646: 'fruit': unknown override specifier
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Game.h(15,13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Fruit.cpp(15,8): warning C4244: 'initializing': conversion from 'T' to 'int', possible loss of data
1>        with
1>        [
1>            T=float
1>        ]
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Fruit.cpp(16,9): warning C4244: 'initializing': conversion from 'T' to 'int', possible loss of data
1>        with
1>        [
1>            T=float
1>        ]
1>Game.cpp
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Game.cpp(40,1): error C2512: 'Fruit': no appropriate default constructor available
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Fruit.h(13,7): message : see declaration of 'Fruit'
1>Generating Code...
1>Done building project "SFML.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
P-179539
farethh
Temat założony przez niniejszego użytkownika
» 2022-06-09 20:55:33
A tutaj po zmienie w konstruktorze Game

//////////////

Build started...
1>------ Build started: Project: SFML, Configuration: Debug x64 ------
1>Fruit.cpp
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Game.h(15,8): error C3646: 'fruit': unknown override specifier
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Game.h(15,13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Fruit.cpp(15,8): warning C4244: 'initializing': conversion from 'T' to 'int', possible loss of data
1>        with
1>        [
1>            T=float
1>        ]
1>D:\Programowanie\C++\VIsual Studio Projekty\SFML\5 Snake\Projekt\Fruit.cpp(16,9): warning C4244: 'initializing': conversion from 'T' to 'int', possible loss of data
1>        with
1>        [
1>            T=float
1>        ]
1>Game.cpp
1>main.cpp
1>Generating Code...
1>Done building project "SFML.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
P-179540
pekfos
» 2022-06-09 21:04:20
Błąd jest w Game.h, przy kompilacji Fruit.cpp, co nie klei się z kodem który podałeś. Fruit.cpp dołącza tylko Fruit.h, a ten tylko SFML i iostream. Skąd tam Game.h?
P-179541
farethh
Temat założony przez niniejszego użytkownika
» 2022-06-09 21:14:29
Dobra, udało się rozwiązać problem. W Fruit.cpp był dodany nagłówek Game.h i przez to nie chciało się kompilować.

Dzięki wielkie za pomoc, serio mega mi pomogłes z tym konstruktorem.
P-179542
1 « 2 »
Poprzednia strona Strona 2 z 2