Wpis z mikrobloga

Zaraz #!$%@? dostane. Pomoże ktoś znaleźć wytłumaczenie dlaczego Visual Studio wywala errory?

https://pastebin.com/njTxERYT Waiter.h:
#pragma once
class Waiter
{
int ID;
int IDofServiced;

public:
void SetID(int n);
int Get
ID();
Waiter(int = 1, int = 0);
~Waiter();
};

https://pastebin.com/JhRHr694 Waiter.cpp:
#include "Waiter.h"
#include
using namespace std;

Waiter::Waiter(int id, int idoS)
{
ID = id;
IDofServiced = idoS;

cout << "Jestem kelnerem nr: " << ID << ". Aktualnie obsługuje klienta: " << IDofServiced << endl;
};

Waiter::~Waiter()
{
cout << "Byłem kelnerem nr: " << ID << " ostatnim obsługiwałem klienta: " << IDofServiced << endl;
};

Waiter::SetID(int n)
{
ID = n;
};

Waiter::Get
ID()
{
return ID;
};

błędy:

Ważność Kod Opis Projekt Plik Wiersz Stan pominięcia Stan pominięcia
Błąd (aktywny) E0260 brak jawnego typu (przyjęto typ „int”) Symulation C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.cpp 18
Błąd (aktywny) E0147 deklaracja jest niezgodna z elementem "void Waiter::Set
ID(int n)" (zadeklarowane w wierszu 8 w "C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.h") Symulation C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.cpp 18
Błąd (aktywny) E0260 brak jawnego typu (przyjęto typ „int”) Symulation C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.cpp 23
Błąd C4430 brak specyfikatora typu - założono, że int. Uwaga: C++ nie obsługuje domyślnie typu int Symulation C:\Users\Jedrzej\Desktop\sym
kom\Symulation\Waiter.cpp 19
Błąd C2556 "int Waiter::SetID(int)": przeciążona funkcja różni się tylko typem zwracanym od "void Waiter::SetID(int)" Symulation C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.cpp 19
Błąd C2371 "Waiter::Set
ID": zmiana definicji; różne typy podstawowe Symulation C:\Users\Jedrzej\Desktop\symkom\Symulation\Waiter.cpp 18
Błąd C4430 brak specyfikatora typu - założono, że int. Uwaga: C++ nie obsługuje domyślnie typu int Symulation C:\Users\Jedrzej\Desktop\sym
kom\Symulation\Waiter.cpp 24

#programowanie #cpp
  • 6
  • Odpowiedz
@PlantatorCebuli: W C++ musimy wprost napisać, jakiego typu jest funkcja/metoda. Jeśli nie zwracamy nic, dajemy void. Specjalnym przypadkiem są konstruktory/destruktor, które po prostu nic nie mogą zwrócić.

Waiter::~Waiter() // To jest ok, destruktor nie może nic zwracać

Waiter::SetID(int n) // To nie jest ok, SetID nic nie zwraca, jest typu void

Waiter::Get_ID() // To też nie jest ok, musisz wprost napisać typ int. Nawet jeśli czasami kompilator Ci pozwoli,
  • Odpowiedz