Passsing struct into class memebr function

Hey everyone. I'm having a problem passing my struct into my class member function. I feel it's redundant to have a structure in both the class and the main program. I'm reading from my book how to pass the structure into functions, and figured it should be the same to pass it into class functions, but I'm getting an error that I just cannot figure out. Here's a snippet of the code.

records.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const int N_SIZE = 75,
		 A_SIZE = 75,
		 C_SIZE = 75,
		 S_SIZE = 30,
		 Z_SIZE = 14,
		 P_SIZE = 15,
		 D_SIZE = 14;

struct Info
{
	char name[N_SIZE],
		 addr[A_SIZE],
		 city[C_SIZE],
		 state[S_SIZE],
		 zip[Z_SIZE],
		 phone[P_SIZE],
		 dateLP[D_SIZE];

	float  acctBal;
};

//Records class performs manipulation of the information in the Info structure.
class Records
{
	public:
		Records() {}; //Sets default file to records.dat.********************
		void writeInfo(const Info &);
		string displayInfo();


records.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Records::writeInfo(const Info &entries)
{
	fstream recordsFile("records.dat", ios::out | ios::binary | ios::app);
		
	if (!recordsFile)
	{
		cout << "\nFile read error. The program will now terminate. \n";
		system("pause");
		exit(EXIT_FAILURE);
	}

	recordsFile.write(reinterpret_cast<char *>(&entries), sizeof(entries));

	recordsFile.close();
}


test.cpp (main program)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
int main()
{
	Records records;
	Info customer;

	const int SIZE = 75; //Constant into to hold the size of the findName variable.
	long int position;   //Holds the read/write position of the file.

	char findName[SIZE],//Variable used for user-defined search key.
		 ans;			//Holds the user's input for navigating program.

	string input; //Gets input for each item from the user.
	
	cout << "Would you like to add a new entry? Y or N: ";
	cin >> ans;
	cin.ignore();

	while(toupper(ans) == 'Y')
	{
		cout << "\n****************NEW ENTRY*********************\n\n";

		cout << "NAME: ";
		getline(cin, input);
		
		
		cout << "ADDRESS: ";
		getline(cin, input);
		
		
		cout << "CITY: ";
		getline(cin, input);
		
		
		cout << "STATE: ";
		getline(cin, input);
		strcpy_s(customer.state, input.c_str());
		
		cout << "ZIP: ";
		getline(cin, input);
		strcpy_s(customer.zip, input.c_str());
		
		cout << "PHONE: ";
		getline(cin, input);
		strcpy_s(customer.phone, input.c_str());
		
		cout << "ACCOUNT BALANCE: $";
		cin >> customer.acctBal;
		cin.ignore();

		cout << "DATE OF LAST PAYMENT: ";
		getline(cin, input);
		strcpy_s(customer.dateLP, input.c_str());

		records.writeInfo(customer);


This is the error I'm getting :

1
2
3
records.cpp(9): error C2511: 'void Records::writeInfo(const Info &)' : overloaded member function not found in 'Records'

records.h(32) : see declaration of 'Records'


I've checked that the definition and header are the same, and I do have a }; at the end of the class but only copy and pasted the portion of the code containing the error.

Any help would be appreciated. Thanks.
I am not sure if this will fix your code but line 12 in records.cpp must be recordsFile.write(reinterpret_cast<const char *>(&entries), sizeof(entries)); You are trying to convert a const object to non-const char pointer.
Thanks! I think that was part of my problem. The other part is the way I had multiple copies of the same file in different directories.. and VS was using these files from different areas.. so some files weren't being updated as they should've been. I hate VS directories =(
Topic archived. No new replies allowed.