How do I access a pubic member function from outside of main? When I directly call the function using the 'dot operator' it shows me "Scope error". It says that the object name was not declared under that scope. Here are the snippets of my code.
class laptop
{
private:
int id,price,cpu,gpu,ram,size,qty;
char name[30];
public:
laptop() : id(0),price(0),cpu(0),gpu(0),ram(0),size(0) {}
void add(int i,char n[],int p,int c,int r,int g,int s,int q)
{
id=i; std::strcpy(name,n); price=p; cpu=c; ram=r; gpu=g; size=s; qty=q;
}
int qt()
{
return qty;
}
};
Inside the external function(not a member function) I gave the function call as
cout<<l[1].qt();
It just keeps popping that error. And yes, I AM A NEWBIE! I guess it shows for itself from my code. Thanks in advance!
EDIT- Not sure which part you are asking for. So here it is. My entire code:
#include <iostream>
#include <cstring>
#include <iomanip>
//#include <string>
using namespace std;
char name[30],ip3;
int ip1,ip2,i,cart[10][2],temp,id;
static int count=0;
int get_id();
class laptop
{
private:
int id,price,cpu,gpu,ram,size,qty;
char name[30];
public:
laptop() : id(0),price(0),cpu(0),gpu(0),ram(0),size(0) {}
void add(int i,char n[],int p,int c,int r,int g,int s,int q)
{
id=i; std::strcpy(name,n); price=p; cpu=c; ram=r; gpu=g; size=s; qty=q;
}
void disp()
{
cout<<name<<endl<<"Processor-Intel Core i"<<cpu<<" ,RAM-"<<ram<<" GB, "<<gpu<<" GB Graphics, "<<size<<" inches HD display"<<endl;
cout<<"Price Rs."<<price<<endl;
}
void tab()
{
cout<<setw(1)<<id<<setw(22)<<name<<setw(17)<<"Intel Core i"<<cpu<<setw(7)<<ram<<" GB"<<setw(6)<<gpu<<" GB"<<setw(10)<<size<<" inches";
}
int qt()
{
return qty;
}
void add()
{
cout<<l[2].qt();
}
};
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main()
{
laptop l[15];
l[1].add(1001,"HP Pavillion 530",30000,5,4,1,15,10);
l[2].add(1002,"HP Pavillion 540",32000,5,6,1,15,11);
l[3].add(1003,"HP Pavillion 730",37000,7,8,2,15,4);
l[4].add(1004,"HP Pavillion 750",44000,7,16,2,17,10);
l[5].add(1005,"HP Pavillion 750+",49000,7,32,4,17,14);
l[6].add(1006,"Dell Vostro DV300",23000,3,4,1,13,2);
l[7].add(1007,"Dell Vostro DV301",25000,3,4,1,14,9);
l[8].add(1008,"Dell Vostro DV510",29000,5,4,1,15,18);
l[9].add(1009,"Dell Vostro DV710",44000,7,8,2,15,4);
l[10].add(1010,"Dell Vostro DV750",48000,7,16,2,17,3);
l[11].add(1011,"Lenovo Y300",27000,3,8,1,13,9);
l[12].add(1012,"Lenovo Y900",60000,7,16,4,17,2);
cout<<"Welcome to Walmart- The online electronic supermarket"<<endl;
cout<<"Walmart is a one-stop destination for all your digital needs"<<endl;
cout<<"Please enter your name"<<endl;
cin>>name;
cout<<"Welcome "<<name<<" to our brand new e-store";
cout<<endl<<"We have laptops,tablets and desktops available in our store currently"<<endl;
cout<<"To go to the laptop store, press 1"<<endl<<"To go to the tablet store, press 2"<<endl<<"To go to the desktop store, press 3";
cin>>ip1;
switch(ip1)
{
case 1:
cout<<"Press 1 for a tabulated view. Else press 2 for individual view";
cin>>ip2;
switch(ip2)
{
case 1:
cout<<"Sl. no."<<setw(7)<<" Model Name"<<setw(20)<<"Processor"<<setw(13)<<"RAM"<<setw(14)<<"Graphics"<<setw(15)<<"Screen Size"<<endl;
for(i=1;i<13;i++)
{
l[i].tab();
cout<<endl;
}
break;
case 2:
cout<<endl<<"Here's a list of all the models available with us"<<endl;
for(i=1;i<13;i++)
{
cout<<i<<") ";
l[i].disp();
cout<<endl;
}
break;
}
cout<<"Are you interested in any of the above listed models? (Y/N)"<<endl;
cin>>ip3;
if(ip3=='N')
{
cout<<"Sorry!Please re visit the store soon for new models.Coming soon!";
break;
}
id=get_id();
cout<<"Please enter the quantity ("<<l[id].qt()<<" available in stock)"<<endl;
cin>>cart[count][1];
if(cart[count][1]<=l[id].qt())
cout<<"Item added to cart";
else
cout<<"Error. Please recheck the quantity";
}
return 0;
}
int get_id()
{
cout<<"Please enter the item id of the model that you are interested in"<<endl;
cin>>cart[count][0];
temp=(cart[count][0])/1000;
if(temp==1)
return (cart[count][0])-1000;
else if(temp==2)
return (cart[count][0])-2000;
}