• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ja już tego nie rozumiem

Object Storage Arubacloud
0 głosów
226 wizyt
pytanie zadane 28 czerwca 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
edycja 28 czerwca 2016 przez DragonCoder

Witam. Siedzę już 6 godzinę przed jednym plikiem, bo ciągle mam błąd gdy próbuje odczytać statystykę. I nie rozumiem czemu tak jest. >>>

#ifndef heros_statistic_h
#define heros_statistic_h
#include<iostream>
#include<cstdlib>

void warrior_attributs()
{
    int strenght_warrior=50;
	int stamina_warrior=8;
	int sleight_warrior=20;
	int intelligence_warrior=8;
	int state_money_beginn=500;
	int deffence_warrior=sleight_warrior;
	int life_warrior=stamina_warrior*50;
	int minimal_damage_warrior=strenght_warrior*1;
	int maximal_damge_warrior=strenght_warrior*2;
	int damage_warrior=rand()%minimal_damage_warrior+maximal_damge_warrior;
}

#endif

i to próbuje wczytać do 

#ifndef hero_description_h
#define hero_description_h
#include<iostream>
#include<cstdlib>
#include "heros_statistic.h"
using namespace std;
{
	cout<<"Warrior is a guise, the fighted with a one-armed weapon and two-armed weapon, but the can´t fighting with daggers and chachts. The warrior merked with a big physical injuries";
	cout<<", but with a small deffences. The warrior had a skill, the names catching pancery, the strengthened his deffence \n";
}

#endif

I gdy wpisuje>

cout<<strenght_warrior;

Wyskakuje mi:D:\krzytsian\gierka skrot\heros_decription.cpp|13|error: 'warrior_damage' was not declared in this scope| i nie wiem z jakiej przyczyny i już głupieje. Mógłby mnie ktoś nakierować na bład?

EDIT>> Przepraszam za mój okropy angielski :)

2 odpowiedzi

+3 głosów
odpowiedź 28 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
wybrane 28 czerwca 2016 przez DragonCoder
 
Najlepsza

Jak patrzę na ten kod to zastanawiam się, czy znasz podstawy c++. 
Ale teraz do rzeczy:
1. Jeżeli chcesz statystyki wojownika to tworzysz to w klasie.
2. using namespace std; { cout<<"..."; cout<<"..."; }
Ja się pytam.. co to jest? O.o Po co te klamerki i dlaczego nie ma tych cout'ów w jakiejś funkcji/metodzie, chociażby w main'ie.
3. Pozwól, że trochę ci pomogę.. przeanalizuj sobie ten kod, pod spodem i spróbuj zastosować coś takiego u siebie:
 

// Plik: "Wojownik.h"

class Wojownik
{
public:
   int Statystyka_1,
   statystyka_2,
   statystyka_3;

   Wojownik();
   void Opis();
}

// Plik: "wojownik.cpp"

#include <Wojownik.h>
#include <iostream>

Wojownik::Wojownik() //<- to jest konstruktor.. wywołuje się w momencie stworzenia obiektu o klasie "Wojownik"
{
   Statystyka_1=10;
   Statystyka_2=20;
   Statystyka_3=30;
}

void Wojownik::Opis() //<- to jest zwykła metoda znajdująca się w klasie "Wojownik" wypisująca na ekranie opis
{
   std::cout<<"Tu jest opis\n";
   std::cout<<"Tu jest dalsza część opisu";
}

//Plik "main.cpp"

#include <Wojownik.h>
#include <iostream>

int main()
{
   Wojownik NowyWojownik; //<- tu tworzymy nowy obiekt klasy "Wojownik"
   NowyWojownik.Opis(); //<- to sprawi, że w konsoli wypisze się opis
   std::cin.get() //<- to jest do zatrzymania programu
}

Polecam przejrzeć tutoriale w internecie o łączeniu plików w C++ : )
PS Oczywiście to:
#ifndef heros_statistic_h
#define heros_statistic_h
#endif
również musi się znaleźć w pliku "Wojownik.h"

komentarz 28 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak to wszystko jest, ja dałęm tylko małe kawałki kodu :D, obiektóki jeszcze nie robię, mam to w planach, kiedy skończę grę i będę ją robił razem z WinApi i SFML wtedy dołączę obiektówke. Nie musiałeś pisać komentarzy wiem jak działają funkcję, i już dodałęm cout do mojej funkcji i póki co działa dobrze. Dziękuje mimo wszystko :)
komentarz 30 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Skopiowałem twój plik, żeby sprawdzić, czy działa poprawiłęm go bo były błedy noi znowu to samo>>C:\Users\Aneta\Desktop\dwdwd\woj.cpp|6|error: 'Statystyka_2' was not declared in this scope|

C:\Users\Aneta\Desktop\dwdwd\woj.cpp|7|error: 'Statystyka_3' was not declared in this scope|
komentarz 30 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Przez przypadek napisałem "statystyka_3" z małej litery.. a w drugim miejscu z wielkiej.. mój błąd.
komentarz 30 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
class Wojownik
{
public:
   int Statystyka_1,
   statystyka_2,
   statystyka_3;
 
   Wojownik();
   void Opis();
}

i zapomniałeś średnika.

+1 głos
odpowiedź 28 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)
Nie wiem po jakiemu jest ten error, ale na pewno nie po angielsku.

Używasz niezdeklarowanej zmiennej.
komentarz 28 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Poprawiłem i jest dokładnie ten, który się wyświetla.
komentarz 28 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak, ale przecież jest zadeklarowana w innym pliku w funkcji nie zwracającej argumetów.
komentarz 28 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)
I nie wiem kto Ci powiedział, że to będzie działać. Zasięg zmiennych się kończy w funkcji, w której zostały zdeklarowane.

Zmienna "strenght_warrior" ma zasięg równy zasięgowi funkcji "warrior_attributs()".

 

Taki trochę offtopic; Ja zawsze walczę z pisaniem polskich nazw zmiennych, ale czy nie lepiej gdybyś to robił? Jak masz pisać błędy ortograficzne po angielsku to już chyba lepiej pisać po polsku.
komentarz 28 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Ale jeżeli ją zadeklaruje w inny pliku to czy nie powinno to działać? Jak nie, to czy muszę stworzyć klasy? Nie bo muszę sie angielskiego uczyć i robie 3 rzeczy, piszę to co chcem i ucze się programować i angielskiego.
komentarz 28 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)
No to jak się uczyć to może poprawnie... strength, defence i czemu beginn, damge?

Zadeklarowanie w innym pliku działa, ale jak ma działać skoro deklarujesz to wewnątrz funkcji.
komentarz 28 czerwca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak, już wiem. Włożyłem cout do tego samego pliku i już jest ok, nie jest może tak jakbym chciał, ale to już jest sprawa na później. Tak wiem, że są błedy i staram się je eliminować, niestety nie miałęm styczności z angielskim około roku i z pisownią jest kiepsko. Jutro idę do biblioteki wypożyczyć książki do gramatyki i nauka. Beginn myślę,  że przez niemiecki. W niemieckim jest po prostu Beginn i to mi się myli z angielskim

Podobne pytania

0 głosów
1 odpowiedź 1,281 wizyt
–1 głos
1 odpowiedź 393 wizyt
pytanie zadane 31 stycznia 2018 w C i C++ przez robzon1916 Początkujący (310 p.)
0 głosów
2 odpowiedzi 531 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez onest Początkujący (250 p.)

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,004 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...