create an array of class objects in c++
21,255
Solution 1
Many problems:
- Missing semicolon on the closing brace of the class, as maverik noted
- Use of
string
withoutusing namespace std;
orusing std::string;
(or#include <string>
for that matter) - Ditto #2 for
cin
andcout
(and<iostream>
) d[i]->
is wrong;d[i]
is acontact&
, not acontact*
, so use.
instead of->
name= NULL;
andaddress= NULL;
are nonsensical --string
is not a pointer type, and already default-constructs to emptyphonenumber= NULL;
is technically valid, but still 'wrong'
Also, good lord, use some whitespace in your code.
EDIT (in response to comment): Your constructor should look like:
contact() : phonenumber() { }
Solution 2
You forget the ;
class contact {
...
}; // <- ; is neccessary
Related videos on Youtube
Comments
-
Frustrated Coder almost 2 years
Hi guys I want to make an array of class objects....so that I can keep on creating as many objects during runtime as and when required I wrote the following code, but its giving me error:
class contact{ public: string name;//ALL CLASS VARIABLES ARE PUBLIC int phonenumber; string address; contact(){//Constructor name= NULL; phonenumber= NULL; address= NULL; } void input_contact_name(string s){//function to take contact name name=s; } void input_contact_number(int x){//function to take contact number phonenumber=x; } void input_contact_address(string add){//function to take contact address address=add; } } int main(){ contact *d; d= new contact[200]; string name,add; int choice;//Variable for switch statement int phno; static int i=0;//i is declared as a static int variable bool flag=false; cout<<"\tWelcome to the phone Directory\n";//Welcome Message cout<<"Select :\n1.Add New Contact\n2.Update Existing Contact\n3.Delete an Existing Entry\n4.Display All Contacts\n5.Search for a contact\n6.Exit PhoneBook\n\n\n";//Display all options cin>>choice;//Input Choice from user while(!flag){//While Loop Starts switch(choice){//Switch Loop Starts case 1: cout<<"\nEnter The Name\n"; cin>>name; d[i]->name=name; cout<<"\nEnter the Phone Number\n"; cin>>phno; d[i]->input_contact_number(phno); cout<<"\nEnter the address\n"; cin>>add; d[i]->input_contact_address(add); i++; flag=true; } } return 0; }
Please can some one out figure out the reason?? Thanks in advance
-
Frustrated Coder about 13 yearsso what should assign these to in the constrictor?\
-
ildjarn about 13 years@Frustrated Coder : Edited to answer that.
-
Frustrated Coder about 13 yearsphonenumber is a variable not a function
-
ildjarn about 13 years@Frustrated Coder : Yep, but that's not a function call, that's a constructor initialization list + value-initialization. But, if it makes more sense to you,
contact() : phonenumber(0) { }
is fine too.