| | |
creating a class and declaring objects
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Nov 2004
Posts: 4
Reputation:
Solved Threads: 0
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();
}
#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();
}
>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++:
However, the recommended C style (that also works perfectly for C++) is
to promote continuity with the way declarations are handled, and the recommended C++ style is
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.
>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)
int main() { return 0; }
C++ Syntax (Toggle Plain Text)
int main(void) { return 0; }
C++ Syntax (Toggle Plain Text)
int main() { }
If your teacher disagrees then direct him here and I'll be happy to explain in detail why he's stupid.
I'm here to prove you wrong.
•
•
Join Date: Dec 2004
Posts: 60
Reputation:
Solved Threads: 1
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.
![]() |
Similar Threads
- Creating a Class Library (VB.NET)
- Database Connectivity by Creating a Class (C#)
- Help on Creating Class in VB6 (Visual Basic 4 / 5 / 6)
Other Threads in the C++ Forum
- Previous Thread: C++ is dying a slow death
- Next Thread: n00b needs help hiding the black box
| Thread Tools | Search this Thread |
api array based beginner binary c++ c/c++ calculator char char* class classes code compile compiler console conversion count delete deploy desktop directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory news node numbertoword output parameter pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets






