node_binary Class Reference

#include <node_impl.hpp>

Inheritance diagram for node_binary:

node_impl node_add node_divide node_multiply node_subtract

List of all members.

Public Member Functions

 node_binary (node left, node right)
node left () const
node right () const

Protected Member Functions

double evaluate_left () const
double evaluate_right () const

Private Member Functions

virtual void print_node (std::ostream &stream, int indent) const =0
virtual double evaluate_node () const =0

Private Attributes

node left_
node right_


Detailed Description

Abstract base class for binary operators.

Definition at line 119 of file node_impl.hpp.


Constructor & Destructor Documentation

node_binary::node_binary ( node  left,
node  right 
)

Definition at line 191 of file node_impl.cpp.

00192 : left_(left), right_(right)
00193 {}


Member Function Documentation

node node_binary::left (  )  const

Definition at line 195 of file node_impl.cpp.

References left_.

Referenced by evaluate_left(), node_divide::print_node(), node_multiply::print_node(), node_subtract::print_node(), and node_add::print_node().

00197 {
00198   return left_;
00199 }

node node_binary::right (  )  const

Definition at line 201 of file node_impl.cpp.

References right_.

Referenced by evaluate_right(), node_divide::print_node(), node_multiply::print_node(), node_subtract::print_node(), and node_add::print_node().

00203 {
00204   return right_;
00205 }

double node_binary::evaluate_left (  )  const [protected]

Definition at line 207 of file node_impl.cpp.

References node::evaluate(), and left().

Referenced by node_divide::evaluate_node(), node_multiply::evaluate_node(), node_subtract::evaluate_node(), and node_add::evaluate_node().

00209 {
00210   return left().evaluate();
00211 }

double node_binary::evaluate_right (  )  const [protected]

Definition at line 213 of file node_impl.cpp.

References node::evaluate(), and right().

Referenced by node_divide::evaluate_node(), node_multiply::evaluate_node(), node_subtract::evaluate_node(), and node_add::evaluate_node().

00215 {
00216   return right().evaluate();
00217 }

virtual void node_binary::print_node ( std::ostream &  stream,
int  indent 
) const [private, pure virtual]

Implements node_impl.

Implemented in node_add, node_subtract, node_multiply, and node_divide.

virtual double node_binary::evaluate_node (  )  const [private, pure virtual]

Implements node_impl.

Implemented in node_add, node_subtract, node_multiply, and node_divide.


Member Data Documentation

node node_binary::left_ [private]

Definition at line 131 of file node_impl.hpp.

Referenced by left().

node node_binary::right_ [private]

Definition at line 132 of file node_impl.hpp.

Referenced by right().


The documentation for this class was generated from the following files:
Generated on Sun Nov 30 10:05:07 2008 for Calculator by  doxygen 1.5.3