944,113 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 7495
  • C++ RSS
Jan 15th, 2005
0

creating a class and declaring objects

Expand Post »
I've created a class Fraction and am trying to use it in a main () but keep getting an error in my compiler that says "main must return int". My teacher says it's fine but i need to compile and run so i know that it works. Any suggestions? Thank you, jennie
#include <iostream.h>


class Fraction
{
public:
int num, den;
};

void main()
{
Fraction oneFraction;
float decimal = oneFraction.num/oneFraction.den;

cout <<"Please enter a numerator "<<endl;
cin >>oneFraction.num;
cout <<"The numerator is "<<oneFraction.num<<endl;

cout <<"Please enter a denominator "<<endl;
cin >>oneFraction.den;

while (oneFraction.den == 0)
{
cout<<"Enter a number greater than zero."<<endl;
cin >>oneFraction.den;
}
cout <<"The denominator is "<<oneFraction.den<<endl;


cout <<"The fraction in decimal value is "<<decimal<<endl;
if(decimal>1)
cout<<"The decimal value is greater than one."<<endl;

getchar();

}
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Guppy25 is offline Offline
4 posts
since Nov 2004
Jan 15th, 2005
0

Re: creating a class and declaring objects

try putting int main() ?
Reputation Points: 12
Solved Threads: 5
Posting Pro
Acidburn is offline Offline
510 posts
since Dec 2004
Jan 15th, 2005
0

Re: creating a class and declaring objects

>compiler says "main must return int"
>teacher says it's fine
Your compiler is right and your teacher is wrong. main has never returned anything but int in C or C++. If a compiler allows it then it's a non-standard extension to the language and you can't expect your code to do anything meaningful on another compiler. The following definition for main will work everywhere without fail in any version of either C or C++:
C++ Syntax (Toggle Plain Text)
  1. int main()
  2. {
  3. return 0;
  4. }
However, the recommended C style (that also works perfectly for C++) is
C++ Syntax (Toggle Plain Text)
  1. int main(void)
  2. {
  3. return 0;
  4. }
to promote continuity with the way declarations are handled, and the recommended C++ style is
C++ Syntax (Toggle Plain Text)
  1. int main()
  2. {
  3. }
because C++ will return 0 (for success) automagically, thus removing the only argument that idiotic void mainers constantly spout about returning 0 taking too much effort. The same feature is in the latest version of C, but because it isn't widely implemented yet, you should continue to work with the common subset of "old" C and "new" C.

If your teacher disagrees then direct him here and I'll be happy to explain in detail why he's stupid.
Administrator
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Narue is offline Offline
11,807 posts
since Sep 2004
Jan 15th, 2005
0

Re: creating a class and declaring objects

lol can you not explain anyway? NAr I'm joking! But i cant belive i missed out return 0; didnt see that error....
Reputation Points: 12
Solved Threads: 5
Posting Pro
Acidburn is offline Offline
510 posts
since Dec 2004
Jan 16th, 2005
0

Re: creating a class and declaring objects

When you get your program running your in for another surprise. Your program will say, for instance, that 3/5 = 0. The problem is that onefraction.num and onefraction.den are integrs and when you divide integers you just get their integer quotient. Something like this will work: decimal = (1.0*onefraction.num)/onefraction.den;, or you could use a cast.
Reputation Points: 21
Solved Threads: 1
Junior Poster in Training
murschech is offline Offline
60 posts
since Dec 2004

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: C++ is dying a slow death
Next Thread in C++ Forum Timeline: n00b needs help hiding the black box





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC