Передача массива через композицию объектов (C ++)

Person.h

#pragma once
#include<iostream>
#include<string>
#include"birthday.h"using namespace std;

class Person
{

public:

Person()
{
name[100] = " ";
};
Person(string n[100], Birthday b);

void printperson();
void setName(string n)
{
name[100] = n;
};
string getName()
{
return name[100];
};
void setBirthday(Birthday b)
{
birth = b;
};
Birthday getBirthday()
{
return birth;
};

protected:

private:

string name[100];
Birthday birth;
};

Person.cpp

#include<iostream>
#include"Birthday.h"#include"Person.h"#include<string>
using namespace std;

Person::Person(string n[100], Birthday b) : name(n[100]), birth(b)
{
name[100] = n[100];
}

void Person::printperson()
{
cout << "This person is " << name << ". Thier birthday is " << endl;
birth.printbirthday();
}

main.cpp

#include<iostream>
#include<string>
#include"person.h"#include"birthday.h"using namespace std;

int main()
{

string name[100];
int month, day, year;
Birthday birth[100];
int people[100];

for (int i = 0; i < 100; i++)
{

cout << "enter name." << endl;
cin >> name[i];

cout << "enter month." << endl;
cin >> month;
birth[i].setMonth(month);

cout << "enter day." << endl;
cin >> day;
birth[i].setDay(day);

cout << "enter year." << endl;
cin >> year;
birth[i].setYear(year);

Person Chris(name[i], birth);

Chris.printperson();

}

system("pause");
return 0;
}

Привет. Я пытался понять состав объектов в C ++ и застрял, как только я включил массив. У меня это работало, когда строка для имени не была массивом, но как только я начала хранить string как массив я не мог понять это. У меня нет проблем с преобразованием дня рождения intс массивами, но не уверен, что происходит с string, У меня проблемы с линией :name(n[100]), birth(b),

-2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]