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

C++ obiekty klas wewnątrz innych klas

Object Storage Arubacloud
–1 głos
531 wizyt
pytanie zadane 25 października 2016 w C i C++ przez Gryfin123 Początkujący (260 p.)
w klasie "Character" znajdują się obiekty klasy "Attack" ale z jakiegoś powodu gdy najeżdżam na nie to pokazuje się "this declaration has no storage class or type specifier" mam ten problem już od dwóch dni i nie mam pojecia co jest nie tak. Sprawdzałem jakies tutoriale, sprawdzałem dokumentacje, probowałem urzywac konstruktorów ale nic nie działa i zawsze jest ten sam problem. Może też mi ktoś wytłumaczyc co powoduje ten error? Na początku gdy zaczynałem z konstruktorem myślałem że jest to spowodowane tym że IDE uwarza knstruktor za nową funkcje ale teraz to nie mam po prostu pojęcia ...

 

#include <iostream>
#include <string>

struct Attack;
class Character;
class Enemy;


void BeginBattle();
void GameLoop();
void CloseGame();

int main() {

	return 0;

}




struct Attack {
private:
	int damage, accuracy, cooldown;
	std::string name;
public:
	void setAttackVariables(int, int, int, std::string);
};

void Attack::setAttackVariables(int dmg, int acc, int cd, std::string name) {

	damage = dmg;
	accuracy = acc;
	cooldown = cd;
	Attack::name = name;
}

class Character{
private:
	int hp;
	Attack att[3];
	att[0].setAttackVariables(10,90,0,"Basic Swing");
	att[1].setAttackVariables(175, 10, 1, "Blind Assult...!!");
	att[2].setAttackVariables(45, 70, 3, "Smash Bros Smash!");

public:

};

 

2 odpowiedzi

+2 głosów
odpowiedź 25 października 2016 przez niezalogowany

W ciele klasy deklarujesz tylko stałe, zmienne i funkcje, nie wolno jest przypisywać im wartości tak jak Ty to zrobiłeś.

Napisz konstruktor, który to zrobi:

class Character
{
private:
int hp;
Attack att[3];

public:
Character()
{
att[0].setAttackVariables(10, 90, 0, "Basic Swing");
att[1].setAttackVariables(175, 10, 1, "Blind Assult...");
att[2].setAttackVariables(45, 70, 3, "Scuro Guardiano");
}

};

Mam nadzieję, że pomogłem :D

komentarz 25 października 2016 przez Gryfin123 Początkujący (260 p.)
Jakbym chciał poszukac to na wiki czy cos to jak nazywa ise to co zrobiłeś? Mam namyśli "Character(){ ... }".

I tak mogło tylko wolę wiedziec jak to zastosowac w innych przypadkach, czemu itd.

Nie ważne nie. Czytaj tego. Wiem o co chodzi. Jestem głupi ....
komentarz 25 października 2016 przez criss Mędrzec (172,590 p.)

Tak jak napisał - konstruktor

edit: ok, dopiero doczytałem, że jesteś głupi XD

komentarz 25 października 2016 przez Gryfin123 Początkujący (260 p.)
Tak swoją drogą czemu "Scuro Gurdiano" ?
komentarz 25 października 2016 przez niezalogowany
Mój nick na większości forach, ale zapomniałem że tu mam inny xD
0 głosów
odpowiedź 25 października 2016 przez criss Mędrzec (172,590 p.)
    att[0].setAttackVariables(10,90,0,"Basic Swing");
    att[1].setAttackVariables(175, 10, 1, "Blind Assult...!!");
    att[2].setAttackVariables(45, 70, 3, "Smash Bros Smash!");
 

Nie możesz wywoływać funkcji poza funkcją (prawie zawsze). Takie rzeczy w konstruktorze.

Podobne pytania

0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 23 sierpnia 2019 w PHP przez Marcin90 Użytkownik (500 p.)
0 głosów
2 odpowiedzi 505 wizyt
0 głosów
2 odpowiedzi 809 wizyt

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 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!

...