954,499 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Instantiating class objects??

Hi. I can't figure out what I'm doing wrong here. I know I have to instantiate a Carpet object, assign values then pass the instance to the printArea func. Easier said than done! Thanks for any help!! L

#include
#include

class Carpet
{
public:
int lengthInFeet;
int widthInFeet;


};
void main()
{
int lengthInFeet=12;
int widthInFeet=12;
int total;
total=lengthInFeet*widthInFeet;

getch();
}

void printArea(total)
{
cout<<"The area of carpet is "total"sq. feet."<

Lorita
Newbie Poster
4 posts since Feb 2005
Reputation Points: 10
Solved Threads: 0
 

Ah where to begin:

1. void main is wrong it is int main!

2. If you are going to use standard headers do it this way

#include <iostream>
using namespace std;


3.Use code tags like I did above they make everyone who reads your post happy. Read This .

As for your question to declare an instance of your class you just do this

#include <iostream>//Ah the way it should be 

using namespace std;


class Carpet
{
  public:
    int lengthInFeet;
    int widthInFeet;
    int area()
    {
      
      return (lengthInFeet * widthInFeet);//return the length times the width
      
    }
      
};


int main()//A thing of beauty
{
  
  Carpet mainCarpet;//declaring an instance of "Carpet"
  mainCarpet.lengthInFeet = 10;//setting the length
  mainCarpet.widthInFeet = 6;//setting the width
  cout<<mainCarpet.area();//printing out the return value of area
  cin.get();
  return 0;
  
}
prog-bman
Junior Poster
109 posts since Nov 2004
Reputation Points: 14
Solved Threads: 4
 

thats a poor class, you should really have a constructor in there, and pass values using set and get functions.

Acidburn
Posting Pro
511 posts since Dec 2004
Reputation Points: 12
Solved Threads: 5
 

>and pass values using set and get functions
If possible, set and get member functions should be avoided. The only advantage is that data members can be accessed through a controlled interface, but a well designed class will hide its internals properly, thus making the need for get and set member functions unnecessary. Here are a few guidelines for designing classes, concerning data members:

1) All data members are private.
2) If possible, access to data members should not rely on the type of data.
3) All outside forces (including derived types) should work through a public (or protected) interface only.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

All my teaching in class's and OOP have used the idea of set and get fuctions are needed... I could post up alot of my work if you wish?

Acidburn
Posting Pro
511 posts since Dec 2004
Reputation Points: 12
Solved Threads: 5
 

That's generally how OOP is taught, and get/set methods have their place, but teachers (and as a result, their students) often take it to the extreme to the detriment of good design.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

lol, I've often thought a good design is something that is ment to exsist and cant be made better....

Acidburn
Posting Pro
511 posts since Dec 2004
Reputation Points: 12
Solved Threads: 5
 

There are degrees of goodness. Long ago, monolithic programs with GOTO statements all over creation was considered good design. Imagine how hard programming would be today if nobody tried to make it better through structured programming techniques, OOP, service oriented design, component oriented design, design patters, and the like.

Narue
Bad Cop
Administrator
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
 

Yeh true! Anyway we best stop there otherwise we are going a tad off topic!

Acidburn
Posting Pro
511 posts since Dec 2004
Reputation Points: 12
Solved Threads: 5
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You