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

Dlaczego ten program nie działa C++

VPS Starter Arubacloud
0 głosów
138 wizyt
pytanie zadane 12 maja 2019 w C i C++ przez MrChick888 Obywatel (1,020 p.)

Błedy pojawiają się przy tym fragmencie:

People::People()
	:name(x), dateOfBirth(bo)

coś nie tak jest z tym ale moim zdaniem wydaje się ok

Program składa się z 5 plików:

Main:

#include <iostream>
#include "Birthday.h"
#include "People.h"

using namespace std;

int main()
{
	Birthday birthObj(12, 28, 1998);
	People piotrCiosmak("Piotr king", birthObj);
	piotrCiosmak.printInfo();
	system("PAUSE");
}

Klasa People (2 osobne pliki .h i .cpp)

#pragma once
#include "Birthday.h"
#include <string>

using namespace std;

class People
{
public:
	People(string x, Birthday bo);
	void printInfo();
private:
	string name;
	Birthday dateOfBirth;
};



#include <iostream>
#include "People.h"
#include "Birthday.h"

using namespace std;

People::People()
	:name(x), dateOfBirth(bo)
{

}

void People::printInfo()
{
	cout << name << " was born on";
	dateOfBirth.printDate();
}

Klasa Birthday (2 osobne pliki .h i .cpp)

#pragma once

class Birthday
{
public:
	Birthday(int d, int m, int y);
	void printDate();
private:
	int day;
	int month;
	int year;
};




#include <iostream>
#include "Birthday.h"

using namespace std;

Birthday::Birthday(int d, int m, int y)
{
	day = d;
	month = m;
	year = y;
}

void Birthday::printDate()
{
	cout << day << "/" << month << "/" << year << endl;
}

 

1 odpowiedź

+1 głos
odpowiedź 12 maja 2019 przez Rzepek Bywalec (2,050 p.)
wybrane 12 maja 2019 przez MrChick888
 
Najlepsza

Konstruktor w pliku .cpp to konstruktor domyślny, używany gdy tworzony jest obiekt bez podania argumentow. Musisz dopisać w argumentach konstruktora w pliku .cpp argumenty z pliku .h

People::People(string x, Birthday bo)
    :name(x), dateOfBirth(bo)
{
 
}

Błąd występuje dlatego, bo wywołujesz konstruktor przyjmujący string i obiekt Birthday, a nie masz jego definicji tylko samą deklarację w pliku .h. Tak jak mówiłem, twój konstruktor w pliku .cpp to definicja konstruktora domyślnego bez argumentów.

komentarz 12 maja 2019 przez MrChick888 Obywatel (1,020 p.)
Okej dzięki wielkie za pomoc

Podobne pytania

+1 głos
2 odpowiedzi 230 wizyt
pytanie zadane 20 czerwca 2017 w C i C++ przez maksbu23 Użytkownik (730 p.)
+1 głos
2 odpowiedzi 225 wizyt
0 głosów
2 odpowiedzi 266 wizyt
pytanie zadane 25 stycznia 2017 w C i C++ przez norbik543 Użytkownik (690 p.)

92,963 zapytań

141,928 odpowiedzi

321,161 komentarzy

62,297 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...