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

 node_binary (std::istream &stream)
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
virtual void save_node (std::ostream &stream) const =0

Private Attributes

node left_
node right_


Detailed Description

Abstract base class for binary operators.

Definition at line 151 of file node_impl.hpp.


Constructor & Destructor Documentation

node_binary::node_binary ( node  left,
node  right 
)

Definition at line 380 of file node_impl.cpp.

00381 : left_(left), right_(right)
00382 {}

node_binary::node_binary ( std::istream &  stream  )  [protected]

Definition at line 384 of file node_impl.cpp.

00385 : node_impl(), left_(stream), right_(stream)
00386 {}


Member Function Documentation

node node_binary::left (  )  const

Definition at line 388 of file node_impl.cpp.

References left_.

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

00390 {
00391   return left_;
00392 }

node node_binary::right (  )  const

Definition at line 394 of file node_impl.cpp.

References right_.

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

00396 {
00397   return right_;
00398 }

double node_binary::evaluate_left (  )  const [protected]

Definition at line 400 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().

00402 {
00403   return left().evaluate();
00404 }

double node_binary::evaluate_right (  )  const [protected]

Definition at line 406 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().

00408 {
00409   return right().evaluate();
00410 }

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.

virtual void node_binary::save_node ( std::ostream &  stream  )  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 165 of file node_impl.hpp.

Referenced by left().

node node_binary::right_ [private]

Definition at line 166 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:49 2008 for Calculator by  doxygen 1.5.3