this my cpp file :

//******************************************************
// Chapter 15, Programming Challenge 7                 *
// PersonData and CustomerData classes                 *
//******************************************************
#include <iostream>
#include "PersonData.h"
#include "CustomerData.h"
using namespace std;

// Function prototypes
void displayPerson(PersonData);
void displayCustomer(CustomerData);

int main()
{
   // Create a PersonData object and pass arguments
   // to the constructor. All of the arguments are
   // C++ strings 
   PersonData person1("Student", "Joe", "123 Bulldog Street",
                          "Starkville", "MS", "39759", "662-555-1234");
   
   // Display the object's data.
   cout << "Person #1\n"
        << "-----------\n";
   displayPerson(person1);

   // Create a CustomerData object and pass arguments
   // to the constructor. All of the arguments are
   // C++ strings except customerNumber and mailingList
   CustomerData customer1("Smith", "Joan", "123 Main Street",
                          "Smithville", "NC", "99999", "123-123-1234", 12345,
                          true);
   
   // Display the object's data.
   cout << "Customer #1\n"
        << "-----------\n";
   displayCustomer(customer1);
   
   // Create another CustomerData object using the default
   // constructor and mutator functions. All of the arguments 
   // are C++ strings except customerNumber and mailingList
   CustomerData customer2;
   customer2.setLastName("Jones");
   customer2.setFirstName("Jenny");
   customer2.setAddress("555 East Street");
   customer2.setCity("Jonesville");
   customer2.setState("VA");
   customer2.setZip("88888");
   customer2.setPhone("888-888-8888");
   customer2.setCustomerNumber(77777);
   customer2.setMailingList(false);
   
   // Display the object's data.
   cout << "Customer #2\n"
        << "-----------\n";
   displayCustomer(customer2);
   return 0;
}

//******************************************************
// The displayPerson function accepts a PersonData     *
// object as its argument and displays the object's    *
// data.                                               *
//******************************************************

void displayPerson(PersonData p)
{
   // Display all the data...
   cout << "Last Name: " << p.getLastName() << endl
        << "First Name: " << p.getFirstName() << endl
        << "Address: " << p.getAddress() << endl
        << "City: " << p.getCity() << endl
        << "State: " << p.getState() << endl
        << "ZIP: " << p.getZip() << endl 
        << "Phone: " << p.getPhone() << endl << endl;
}


//******************************************************
// The displayCustomer function accepts a CustomerData *
// object as its argument and displays the object's    *
// data.                                               *
//******************************************************

void displayCustomer(CustomerData c)
{
   // Display all the data but mailing list...
   cout << "Last Name: " << c.getLastName() << endl
        << "First Name: " << c.getFirstName() << endl
        << "Address: " << c.getAddress() << endl
        << "City: " << c.getCity() << endl
        << "State: " << c.getState() << endl
        << "ZIP: " << c.getZip() << endl 
        << "Phone: " << c.getPhone() << endl
        << "Customer Number: " 
        << c.getCustomerNumber() << endl
        << "Mailing List? ";

   // Display Yes or No for mailing list.
   if (c.getMailingList())
        cout << "Yes" << endl << endl;
   else
         cout << "No" << endl << endl;
}

my base class:

#ifndef PERSONDATA_H
#define PERSONDATA_H

using namespace std;

class PersonData
{
protected:
	string lastName;
	string firstName;
	string address;
	string city;
	string state;
	string zip;
	string phoneNumber;

public:

	PersonData()
	{
		firstName="unknown";
		lastName="unknown";
		address="unknown";
		city="unknown";
		state="unknown";
		zip="unknown";
		phoneNumber="unknown";

	}

	PersonData(string last,string first,string add,string city,string state,string zip,string num)
	{
		setLastName(last);
		setFirstName(first);
		setAddress(add);
		setCity(city);
		setState(state);
		setZip(zip);
		setPhone(num);

	}

	void setLastName(string last)
	{
		lastName=last;
	}

	void setFirstName(string first)
	{
		firstName=first;
	}

	void setAddress(string add)
	{
		address=add;
	}

	void setCity(string city)
	{
		city=city;
	}
	void setState(string state)
	{
		state=state;
	}

	void setZip(string zip)
	{
		zip=zip;
	}

	void setPhone(string num)
	{
		phoneNumber=num;
	}
	
	string getLastName()
	{
		return lastName;
	}

	string getFirstName()
	{
		return firstName;
	}

	string getAddress()
	{
		return address;
	}

	string getState()
	{
		return state;
	}

	string getZip()
	{
		return zip;
	}

	string getCity()
	{
		return city;
	}

	string getPhone()
	{
		return phoneNumber;
	}


};
#endif

my Deriverd Class:

#ifndef CUSTOMERDATA_H
#define CUSTOMERDATA_H
#include"PersonData.h"

using namespace std;

class CustomerData: public PersonData
{
private:
	int customerNumber;
	bool mailingList;

public:

CustomerData()
{
	customerNumber=0;
	mailingList=false;
}

CustomerData(string last,string first,string add,string city,string state,string zip,string num,int cust,bool list):PersonData(last,
first,add,city,state,zip,num)
{
	setCustomerNumber(cust);
	setMailingList(list);
}

void setCustomerNumber(int num)
{
	customerNumber=num;
}

void setMailingList(bool list)
{
	if(list==false)
	{
	}
	else
		mailingList=true;
}

int getCustomerNumber()
{
	return customerNumber;
}

bool getMailingList()
{
	return mailingList;
}


};

#endif

when compile it i get this error:

Compiling...
1>driver.cpp


1>c:\users\ankit arya\documents\visual studio 2008\projects\hw3\hw3\driver.cpp(69) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)


1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\ostream(653): could be 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'

i think the first error it has some problem with my function but i am not able to figure out what?

for the second error i have no clue can someone help??

Edited 6 Years Ago by Nick Evan: Fixed tags

This article has been dead for over six months. Start a new discussion instead.