Contactクラスのオブジェクトの空の配列を作成しようとしています。空の配列から始めて、AddressBookというオブジェクト配列にContactのオブジェクトを追加するためのAddrBook.cpp関数を作成します。C++でオブジェクトの空の配列を初期化するにはどうすればよいですか?
AdrBook.hで配列を適切に初期化していますか?
コンタクトのオブジェクトが特定のインデックスに存在するかどうかを確認するにはどうすればよいですか?
AddrBook.cpp
#include "AddrBook.h"
namespace address_book_test
{
const int CAPACITY = 5;
void AddrBook::addContact(Contact& itemToAdd) // Add Contact to the AddrBook (using Contact object)
{
for (int i = 0; i < CAPACITY; i++)
{
if (/*Contact object does not exist at i*/)
{
/*Add Contact object*/
return;
}
}
return;
}
...
}
AddrBook.h
#ifndef ADDR_BOOK_H
#define ADDR_BOOK_H
#include <fstream>
using namespace std;
#include "Contact.h"
namespace address_book_test
{
class AddrBook
{
public:
static const int CAPACITY = 5;
// CONSTRUCTOR
AddrBook() { used = 0; }
// Modification Member Functions
void addContact(Contact& itemToAdd); // Add Contact to the AddrBook (using Contact object)
...
private:
static Contact addressBook[CAPACITY]; // The array used to store Contact objects
int used; // How much of addressBook is used
};
}
#endif
Contact.cpp
#ifndef CONTACT_H
#define CONTACT_H
#include <fstream>
using namespace std;
#include "Address.h"
#include "Name.h"
namespace address_book_test
{
class Contact
{
public:
// Constructor
Contact(string inLastName = "",
string inFirstName = "",
string inStreetAddress = "",
string inCity = "",
string inState = "",
string inZip = "",
string inPhone = "",
string inEmail = "",
string inBirthday = "",
string inPictureFile = "")
{
Name(inLastName, inFirstName);
Address(inStreetAddress, inCity, inState, inZip);
setPhone(inPhone);
setEmail(inEmail);
setBirthday(inBirthday);
setPictureFile(inPictureFile);
}
...
private:
Name fullName;
Address fullAddress;
string phone;
string email;
string birthday;
string pictureFile;
};
}
#endif
アレイは固定サイズです。空の配列を持つことはできません。常に正確に 'CAPACITY'個の要素を持っています。サイズを変更する必要がある場合は、 'std :: vector'を使用してください。 – nwp
「i」の位置にオブジェクトが既に存在します。あなたが行うことができる唯一のことは、それをコピーで上書きすることです。 – user0042