00001 #include "arraybse.h" 00002 #include "bnengine.h" 00003 // 00004 //****************************************************************************** 00005 // ARRAYOPS.CPP 00006 //****************************************************************************** 00007 // 00008 // 00009 //******************************************************************************** 00010 // 00011 // Chris Anderson 00012 // 00013 // Mon Sep 11 12:49:20 1995 00014 // 00015 void CAMarrayBase::initializeReturnArgument(const CAMarrayBase& A) 00016 { 00017 A.Structure.initializeMinStructure(Structure); 00018 DataP = new CAMdataHandler(Structure.getFullDataCount(),A.DataP->getDataType()); 00019 DataP->setReferenceCount(1); 00020 } 00021 // 00022 //******************************************************************************** 00023 // Operator + 00024 //******************************************************************************** 00025 // 00026 CAMarrayBase CAMarrayBase::operator+(const CAMarrayBase& A) const 00027 { 00028 if(Structure.isConformingTo(A.Structure) != 1) 00029 {CAMarrayBase::nonConformingMessage(Structure,A.Structure);} 00030 00031 CAMarrayBase S; 00032 S.initializeReturnArgument(A); 00033 00034 CAMbinaryEngine::doubleCequalAplusB(Structure, *DataP, A.Structure, *A.DataP, 00035 S.Structure, *S.DataP); 00036 00037 S.setTemporaryFlag(); 00038 return S; 00039 }