Files
harbour-core/harbour/tests/overload.prg
Viktor Szakats 7e7aaf9044 2012-10-02 13:52 UTC+0200 Viktor Szakats (harbour syenar.net)
* tests/adirtest.prg
  * tests/ainstest.prg
  * tests/and_or.prg
  * tests/array16.prg
  * tests/arrayidx.prg
  * tests/arrays.prg
  * tests/arrindex.prg
  * tests/atest.prg
  * tests/base64.prg
  * tests/byref.prg
  * tests/calling.prg
  * tests/cdow.prg
  * tests/clasinit.prg
  * tests/clasname.prg
  * tests/classch.prg
  * tests/classes.prg
  * tests/clsdata.prg
  * tests/cmphello.prg
  * tests/codebl.prg
  * tests/curdirt.prg
  * tests/cursrtst.prg
  * tests/dates.prg
  * tests/dates2.prg
  * tests/dates3.prg
  * tests/debugtst.prg
  * tests/delimtst.prg
  * tests/devtest.prg
  * tests/dirtest.prg
  * tests/disptest.prg
  * tests/docase.prg
  * tests/dosshell.prg
  * tests/dttest.prg
  * tests/dupvars.prg
  * tests/dynobj.prg
  * tests/dynsym.prg
  * tests/exittest.prg
  * tests/extend1.prg
  * tests/fib.prg
  * tests/fornext.prg
  * tests/fortest.prg
  * tests/funcarr.prg
  * tests/hbdoctst.prg
  * tests/hsxtest.prg
  * tests/ifelse.prg
  * tests/inifiles.prg
  * tests/initexit.prg
  * tests/inkeytst.prg
  * tests/inline_c.prg
  * tests/inline.prg
  * tests/iotest.prg
  * tests/iotest2.prg
  * tests/ipclnt.prg
  * tests/ipsvr.prg
  * tests/longstr.prg
  * tests/mathtest.prg
  * tests/memvar.prg
  * tests/multiarg.prg
  * tests/nums.prg
  * tests/objarr.prg
  * tests/objasign.prg
  * tests/objects.prg
  * tests/os.prg
  * tests/overload.prg
  * tests/parexpr.prg
  * tests/passref.prg
  * tests/procname.prg
  * tests/recursiv.prg
  * tests/returns.prg
  * tests/round.prg
  * tests/sdf_test.prg
  * tests/seconds.prg
  * tests/set_num.prg
  * tests/set_test.prg
  * tests/sound.prg
  * tests/statfun.prg
  * tests/statics.prg
  * tests/statics1.prg
  * tests/statics2.prg
  * tests/strdelim.prg
  * tests/stripem.prg
  * tests/t1.prg
  * tests/test.prg
  * tests/testerro.prg
  * tests/testfor.prg
  * tests/testget.prg
  * tests/testhtml.prg
  * tests/testid.prg
  * tests/testop.prg
  * tests/teststr.prg
  * tests/testtok.prg
  * tests/testvars.prg
  * tests/tflock.prg
  * tests/tstalias.prg
  * tests/version.prg
  * tests/videotst.prg
  * tests/while.prg
  * tests/wvtext.prg
    ! various cleanups and fixes after running almost all of them

  * ChangeLog
    * changed hbqt new repository to its new location:
        http://sourceforge.net/projects/qtcontribs/
2012-10-02 11:59:22 +00:00

65 lines
1.7 KiB
Plaintext

/*
* $Id$
*/
//
// Implementation of operator overload in Harbour
//
// Written by Eddie Runia <eddie@runia.com>
// www - http://harbour-project.org
//
// Placed in the public domain
//
#include "hbclass.ch"
PROCEDURE Main()
LOCAL oString := TString():New( "Hello" )
? "Testing TString with Operator Overloading"
? oString:cValue
? "---"
? ValType( oString )
? "Equal........:", oString = "Hello"
? "Exactly Equal:", oString == "Hello"
? "Not Equal != :", oString != "Hello"
? "Not Equal <> :", oString <> "Hello"
? "Not Equal # :", oString # "Hello"
? "Substring $ :", oString $ "Hello"
? "Less than :", oString < "Hello"
? "Less than or Equal:", oString <= "Hello"
? "Greater than :", oString > "Hello"
? "Greater than or Equal:", oString >= "Hello"
? "Concatenation + :", oString + "Hello"
? "Concatenation - :", oString - "Hello"
? "Array index[2] :", oString[ 2 ]
? "Array index[3] := 'X' :", oString[ 3 ] := 'X'
? oString:cValue
RETURN
CREATE CLASS TString
VAR cValue
METHOD New( cText ) INLINE ::cValue := cText, self
OPERATOR "=" ARG cArg INLINE ::cValue = cArg
OPERATOR "==" ARG cArg INLINE ::cValue == cArg
OPERATOR "!=" ARG cArg INLINE ::cValue != cArg
OPERATOR "<" ARG cArg INLINE ::cValue < cArg
OPERATOR "<=" ARG cArg INLINE ::cValue <= cArg
OPERATOR ">" ARG cArg INLINE ::cValue > cArg
OPERATOR ">=" ARG cArg INLINE ::cValue >= cArg
OPERATOR "+" ARG cArg INLINE ::cValue + cArg
OPERATOR "-" ARG cArg INLINE ::cValue - cArg
OPERATOR "$" ARG cArg INLINE ::cValue $ cArg
OPERATOR "[]" ARG nIndex INLINE iif( PCount() > 2, ;
::cValue := Stuff( ::cValue, nIndex, 1, hb_PValue( 3 ) ), ;
SubStr( ::cValue, nIndex, 1 ) )
ENDCLASS