Re: calling a function in cpp

From: Ian (noone_at_nowhere.com)
Date: 05/14/04


Date: Fri, 14 May 2004 13:33:21 +1200

Ken wrote:
> hello,
>
> I would to know if it is possible to call an object in a function within a
> class.
> Meaning , In a class, A function X calling onto a function Y, and function
> Y we want one of the two calculation ( eg seconds , out of seconds and
> minutes)
> thanks ,
>
> Ken
> lerameur at yahoo.com
>
> here is the program I wrote, but the function subtraction wich is calling
> another function is not working, dont know how to access the info.
>
>
You've placed what should be class data members in the member function
time_to_seconds().

Hint:
class Conversion
{
   int seconds1, seconds2, hours, minutes, seconds;

...
};

Then all member functions can access them, no need for odd things like
time_to_seconds.seconds.

Ian

>
> #include <iostream>
> #include <conio.h> // Used in microsoft visual c++
> using namespace std;
>
>
> class Conversion
> {
> public:
> void menu();
> void sec_to_hours();
> void time_to_seconds();
> void substraction();
> };
>
> void Conversion::time_to_seconds() //Converts time to seconds
> { int seconds1, seconds2, hours, minutes, seconds;
> char colon;
> cout<<"Enter a time (hours:minutes:seconds): " ;
> cin>> hours >>colon >>minutes >>colon >> seconds;
> if ( hours >= 0 && hours < 24 ) seconds1 = hours * 3600 ;
> else cout<<"Invalid amounts of hours " <<endl;
> if ( minutes >= 0 && minutes < 60) seconds2 = minutes *60;
> else cout<<"Invalid amount of minutes " <<endl;
> if ( seconds >= 0 && seconds< 60) ;
> else cout<<"Invalid amount of seconds " <<endl;
> if ( ( hours >= 0 && hours < 24 ) && ( minutes >= 0 && minutes < 60) &&
> ( seconds >= 0 && seconds< 60) )
> seconds = seconds1 + seconds2 + seconds ;
> cout<< " There is: " << seconds <<" seconds." <<endl;
> }
> void Conversion::substraction()
> { int seconds ;//total_seconds;
>
> time_to_seconds();
> cout<<" Now enter the amount of seconds to subtract : " <<endl;
> cin >> seconds ;
>
> if ( time_calc.time_to_seconds() >= seconds)
> cout<< " Substracting " << time_to_seconds.seconds <<" from " << seconds
> <<" is: " << time_to_seconds().seconds - seconds ;
> else
> cout<< " The time has to be greater then the seconds. Please try again! "
> ;
>
>
> }
>
>
> void Conversion::menu()
> {
> int choice;
> Conversion time_calc;
> do {
> cout << endl << endl;
> cout << " Time Management System "<<endl;
> cout << " ============================================== "<<endl;
> cout << " 1: Convert a number of seconds into a time "<<endl;
> cout << " 2: Convert a time into a number of seconds "<<endl;
> cout << " 3: Substrat a number of seconds from a time "<<endl;
> cout << " 4: Quit "<<endl;
> cout << " ============================================== "<<endl;
>
> cout << " Your choice please: ";
> cin >> choice;
>
> switch (choice)
> {
> case 1:
> sec_to_hours();
> break;
> case 2:
> time_calc.time_to_seconds();
> break;
> case 3:
> time_calc.substraction();
> break;
> case 4: cout<<"Thank you for having used this system, Bye Bye!!!"; break;
>
> default: cout<<"Error: Invalid option, Please try again" ;
> }
> } while (choice != 4);
>
> }// end function menu
>
> void sec_to_hours() //Conversion from seconds to hours and minutes
> { int seconds;
>
> cout<<"Enter the number of seconds: " ;
> cin>> seconds;
> if (seconds >= 0 && seconds < 60)
> cout<< "The number of seconds is " << seconds ;
> else if (seconds >= 60 && seconds < 3600)
> cout<< "There are " << seconds / 60 <<" minutes and " << seconds % 60
> <<" seconds" ;
> else if ( seconds >= 3600 && seconds < 86400 ) // 1 hours or more , 1 hour
> = 3600 seconds
> cout<< "There are " << seconds /3600 << " hours " << (seconds % 3600) /
> 60 <<" minutes " << seconds % 60 <<" seconds" ;
> else if ( seconds >= 86400 ) //checking for days if seconds greater then
> 86400seconds ( 1 day)
> { cout<< "There is " << seconds / 86400 <<" days, " << (seconds % 86400)
> /3600 << " hours " ;
> cout<< ((seconds % 86400) %3600) / 60 <<" minutes " << (((seconds %
> 86400) %3600) % 60 ) %60 <<" seconds" ;
> }
> }
>
> }; // end void time_to_seconds
>
>
> void substraction()
> { int seconds, total_seconds;
>
> time_to_seconds();
> cout<<" Now enter the amount of seconds to subtract : " <<endl;
> cin >> seconds ;
>
> if ( time_to_seconds().seconds >= seconds)
> cout<< " Substracting " << time_to_seconds.seconds <<" from " << seconds
> <<" is: " << time_to_seconds().seconds - seconds ;
> else
> cout<< " The time has to be greater then the seconds. Please try again! "
> ;
>
> }
>
> void main()
> {
> Conversion time_calc;
> time_calc.menu();
> getch(); // Used in microsoft visual c++
>
> }
>
>
>
>
>
>
>



Relevant Pages

  • Re: Easy Question - LINK2005 error
    ... int number; ... void SetNumber; ... by the merest coincidence had the same name as a member function of a class, ... declared in a .cpp file that was NOT included in some other compilation by doing #include. ...
    (microsoft.public.vc.mfc)
  • Re: default parameter value
    ... > void f(int a, int b) ... if the above is a member function of a class and the 'default argument' ... is some class member. ...
    (comp.lang.cpp)
  • Re: The c++ way?
    ... > int Get; ... > void Get ... you are using an actual member function to get the data. ... The cast operator would be defined as so: ...
    (comp.lang.cpp)
  • "is protected within this context" error
    ... tp2.cc: In member function `void Other::DoSomething': ... tp2.cc:11: error: `int Base::iX' is protected ... void Other::DoSomething{ ...
    (comp.lang.cpp)
  • Re: fork() & exec1 problem
    ... > int TryLock; ... > void UnLock; ... > void instructions; ...
    (comp.unix.programmer)