Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A question about varaibles that I should give to functions in C++

Author: Hristo

Date: 02:52:03 08/01/04

Go up one level in this thread


On August 01, 2004 at 01:07:10, Uri Blass wrote:

>My code until today used a lot of global varaibles and I decided based on advice
>of Dann Corbit to use a class for time management.
>
>I have a many varaibles in class for time management and
>I hesitate which parameters to give to the functions.
>
>I will give an example:
>
>I want to have a procedure to update the remaining number of moves to the time
>control in the beginning of every search(this varaible is used for other
>varaibles like the target time.
>
>The procedure is using the following varaibles:
>1)num_moves_1(number of moves in the first time control)
>2)num_moves_2(number of moves in the second time control)
>3)num_moves_3(number of moves in the third time control)
>4)hply(history ply of the game)


Uri,
if you should provide accessor functions for your class attributes (variables).
In other words, it is a common practice to expose your variables through
independent functions (set/get).

For instance:
class UrisTime{
public:
  UrisTime(){}
  ~UrisTime(){}

  int getMoves1(void) const { return num_moves_1;}
  void setMoves1(int i) { num_moves_1 = i;}

  int getMoves2(void) const { return num_moves_2;}
  void setMoves2(int i) { num_moves_2 = i;}

  int getMoves3(void) const { return num_moves_3;}
  void setMoves3(int i) { num_moves_3 = i;}

  int getHply(void) const { return hply;}
  void setHply(int i) { hply = i;}

protected:
  int num_moves_1;
  int num_moves_2;
  int num_moves_3;
  int hply;
};


You can also inline the functions if you think that they would be called very
often: just add inline in front of the functions.

  inline int getMoves1(void) const { return num_moves_1;}
  inline void setMoves1(int i) { num_moves_1 = i;}


>
>I think to call the procedure not inside the class so it cannot get directly
>num_moves_1 or num_moves_2 or num_moves_3
>
>I can write seperate functions to return num_moves_1 inside the class and use
>these functions outside of the class but I am not sure if it is a good idea(no
>experience in C++).
>
>Another possibility is not to give the functions the parameters of
>num_moves_1,num_moves_2,num_moves_3 because their value is known inside the
>class so it is not needed.
>
>What do you suggest?
>
>Uri



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.