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

question-closed Problem z łączeniem plików c++

Object Storage Arubacloud
0 głosów
260 wizyt
pytanie zadane 19 grudnia 2019 w C i C++ przez Jacuchna0 Użytkownik (640 p.)
zamknięte 19 grudnia 2019 przez Jacuchna0

Witam ma 2 oto takie pliki

Lista.cpp

#include "Lista.hpp"
#include "Organizm.hpp"
#include "pch.h"
#include <iostream>
using namespace std;

Lista::Lista() {
	pierwszy = NULL;
	aktualny = NULL;
	ostatni = NULL;
}

void Lista::dodaj(Organizm * organizm) {
	struct ElementListy * nowy = new ElementListy(organizm,ostatni);

	if (pierwszy != NULL) {
		ostatni->nastepny = nowy;
	} else {
		pierwszy = nowy;
	}

	this->ostatni = nowy;
	sortuj();
}

void Lista::usun(Organizm * organizm) {
	this->aktualny = pierwszy;
	if (this->ostatni == this->pierwszy) {
		delete this->ostatni;
		this->pierwszy = NULL;
		this->ostatni = NULL;
		return;
	}

	while (aktualny->organizm != organizm) {
		aktualny = aktualny->nastepny;
	}

	if (this->pierwszy == aktualny) {
		this->pierwszy = aktualny->nastepny;
		pierwszy->poprzedni = NULL;
	}
	if (this->ostatni == aktualny) {
		this->ostatni = aktualny->poprzedni;
		ostatni->nastepny = NULL;
	}

	if(aktualny->poprzedni != NULL)
		aktualny->poprzedni->nastepny = aktualny->nastepny;
	
	if(aktualny->nastepny != NULL)
		aktualny->nastepny->poprzedni = aktualny->poprzedni;
	
	delete aktualny;
}

void Lista::sortuj() {
	aktualny = pierwszy;
	struct ElementListy * sortowany;
	
	if (pierwszy == ostatni)
		return;
	//sortowanie bąbelkowe jeśli organizm ma większa inicjatywe jest sortowany 
	//lub jeśli taka sama to młodszy idzie w prawo
	while (aktualny->nastepny != NULL) {
		sortowany = pierwszy;
		
		while(sortowany->nastepny != NULL){
			if (sortowany->organizm->getInicjatywa() < sortowany->nastepny->organizm->getInicjatywa()
				|| (sortowany->organizm->getWiek() < sortowany->nastepny->organizm->getWiek() &&
				sortowany->organizm->getInicjatywa() == sortowany->nastepny->organizm->getInicjatywa())) {
				swap(sortowany->organizm, sortowany->nastepny->organizm);
			}
			sortowany = sortowany->nastepny;
		}
		aktualny = aktualny->nastepny;
	}
}

ElementListy::ElementListy(Organizm * organizm,ElementListy * ostatni) {
	this->organizm = organizm;
	this->nastepny = NULL;
	this->poprzedni = ostatni;
}

 

Lista.hpp

#pragma once
struct Lista {
	struct ElementListy * pierwszy;
	struct ElementListy * aktualny;
	struct ElementListy * ostatni;

	Lista();
	void dodaj(Organizm * organizm);
	void usun(Organizm * organizm);
	void sortuj();
};

struct ElementListy {
	Organizm * organizm;
	struct ElementListy * nastepny;
	struct ElementListy * poprzedni;

	ElementListy(Organizm * organizm, ElementListy * ostatni);
};

Kompilator pokazuje masę błędów związanych z plikiem Lista.cpp

komentarz zamknięcia: Znalazłem rozwiązanie
1
komentarz 19 grudnia 2019 przez tkz Nałogowiec (42,000 p.)
Lista pewnie nie wie o strukturze. Jak podasz błędy będzie łatwiej.
komentarz 19 grudnia 2019 przez Jacuchna0 Użytkownik (640 p.)

jest ich trochę więcej ale myślę że to powinno pomóc

1
komentarz 19 grudnia 2019 przez adrian17 Ekspert (344,860 p.)

W miarę możliwości zawsze pokazuj błędy od pierwszego.

#pragma once
struct Lista {
    struct ElementListy * pierwszy;
    struct ElementListy * aktualny;
    struct ElementListy * ostatni;
 
    Lista();
    void dodaj(Organizm * organizm);

W tym punkcie kompilator nie wie co to jest Organizm.

komentarz 19 grudnia 2019 przez Jacuchna0 Użytkownik (640 p.)
edycja 19 grudnia 2019 przez Jacuchna0

Czyli jak w Lista.hpp dałem include "organizm.hpp" to co powinienem jeszcze zrobić

PS

to był pierwszy błąd :D

1
komentarz 19 grudnia 2019 przez adrian17 Ekspert (344,860 p.)
Hm, możesz pokazać pełne okno Visuala z tymi błędami?
komentarz 19 grudnia 2019 przez Jacuchna0 Użytkownik (640 p.)
1>------ Kompilacja rozpoczęta: Projekt: SwiatCPP, Konfiguracja: Debug Win32 ------
1>Lista.cpp
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(6): error C2653: "Lista": nie jest nazwą klasa lub nazwą przestrzeni nazw
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(6): error C4430: brak specyfikatora typu - założono, że int. Uwaga: C++ nie obsługuje domyślnie typu int
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(7): error C2065: "pierwszy": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(8): error C2065: "aktualny": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(9): error C2065: "ostatni": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(10): warning C4508: "Lista": funkcja powinna zwrócić wartość; założono typ zwracany "void"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(12): error C2510: 'Lista': po lewej '::' musi być słowo class/struct/union
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(12): error C2065: "Organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(12): error C2065: "organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(12): error C2182: "dodaj": niedozwolone użycie typu "void"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(12): error C2448: "dodaj": inicjator w stylu funkcyjnym wydaje się być definicją funkcji
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(25): error C2510: 'Lista': po lewej '::' musi być słowo class/struct/union
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(25): error C2065: "Organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(25): error C2065: "organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(25): error C2182: "usun": niedozwolone użycie typu "void"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(25): error C2448: "usun": inicjator w stylu funkcyjnym wydaje się być definicją funkcji
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(56): error C2510: 'Lista': po lewej '::' musi być słowo class/struct/union
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(57): error C2065: "aktualny": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(57): error C2065: "pierwszy": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(60): error C2065: "pierwszy": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(60): error C2065: "ostatni": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(64): error C2065: "aktualny": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(65): error C2065: "pierwszy": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(67): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(68): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(69): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(70): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(71): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(71): error C2660: "std::swap": funkcja nie przyjmuje 1 argumentów
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\exception(316): note: zobacz deklarację „std::swap”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(73): error C2027: wykorzystanie niezdefiniowanego przez użytkownika typu "sortuj::ElementListy"
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(58): note: zobacz deklarację „sortuj::ElementListy”
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(75): error C2065: "aktualny": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2653: "ElementListy": nie jest nazwą klasa lub nazwą przestrzeni nazw
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2065: "Organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2065: "organizm": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2065: "ElementListy": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2065: "ostatni": niezadeklarowany identyfikator
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C4430: brak specyfikatora typu - założono, że int. Uwaga: C++ nie obsługuje domyślnie typu int
1>c:\users\szymon-pc\source\repos\swiatcpp\lista.cpp(79): error C2448: "ElementListy": inicjator w stylu funkcyjnym wydaje się być definicją funkcji
1>Kompilowanie projektu „SwiatCPP.vcxproj” wykonane — NIEPOWODZENIE.
========== Kompilacja: 0 zakończono powodzeniem, 1 zakończono niepowodzeniem, 0 zaktualizowano, 0 pominięto ==========

 

komentarz 19 grudnia 2019 przez Jacuchna0 Użytkownik (640 p.)
Mam rozwiązanie poprostu pch.h trzeba includować jako pierwsze
komentarz 19 grudnia 2019 przez adrian17 Ekspert (344,860 p.)
Albo nie używać w ogóle pch :)

Podobne pytania

0 głosów
1 odpowiedź 1,021 wizyt
0 głosów
0 odpowiedzi 247 wizyt
pytanie zadane 9 lipca 2022 w Sieci komputerowe, internet przez BlayUng Początkujący (260 p.)
0 głosów
1 odpowiedź 249 wizyt
pytanie zadane 11 sierpnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

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

...