• 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++

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
104 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 166 wizyt
pytanie zadane 20 czerwca 2017 w C i C++ przez maksbu23 Użytkownik (730 p.)
+1 głos
2 odpowiedzi 182 wizyt
0 głosów
2 odpowiedzi 149 wizyt
pytanie zadane 25 stycznia 2017 w C i C++ przez norbik543 Użytkownik (690 p.)

89,777 zapytań

138,386 odpowiedzi

309,501 komentarzy

59,681 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 1088p. - Argeento
  2. 1032p. - nidomika
  3. 1024p. - rucin93
  4. 1020p. - Michal Drewniak
  5. 1014p. - Łukasz Eckert
  6. 1006p. - Mikbac
  7. 988p. - TheLukaszNs
  8. 963p. - JMazurkiewicz
  9. 960p. - adrian17
  10. 945p. - Jarosław Roszyk
  11. 941p. - Hubert Chęciński
  12. 920p. - Mawrok
  13. 914p. - overcq
  14. 859p. - ssynowiec
  15. 848p. - Adam Salamon
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...