[ LUGOS-PROG ] C++ operator*

Goran Bervar goran.bervar at adapti.si
Tue Apr 24 10:05:30 CEST 2001


----- Original Message -----
From: "Ales Bardorfer" <alesb at robo.fe.uni-lj.si>
To: <lugos-prog at lugos.si>
Sent: Monday, April 23, 2001 7:54 PM
Subject: [ LUGOS-PROG ] C++ operator*

> Bolj ko studiram tale "operator overloading", manj mi je jasno ali je
> mozno "preobremeniti" operator * (mnozenje), ali se kaj tepe z
> operatorjem indirekcije *?

Možno in se ne tepe. Prevajalnik ju loči po številu operandov. Operator
indirekcije '*' je enojni operator in ga preobložiš z metodo
    rv operator*()
kjer je rv tipe vrednosti, ki jo vrneš. Operator množenja je dvojni operator
in ga za razred T preobložiš z metodo
    T T::operator*(const T& rhs).
ali globalno funkcijo
    T operator*(const T& lhs,const T& rhs).
ali nekaj podobnega.

Mimogrede, kot priporoča Scott Meyers v izjemno dobrih knjigah Efficient C++
in More Efficient C++, raje najprej preobloži operator *= in iz njega
izpelji operator *.

> Ali morda kaksna taka zbirka razredov za delo z matrikami ze obstaja?

Obstaja. Eno ki baje dela z gcc imaš na ttp://webnz.com/robert/cpp_lib.htm.
, tudi na SimTel-u  jih  je nekaj, sicer jih pa enostavno najdeš s kakšnim
iskalcem po netu (išči niz : matrix "C++"). Nekaj časa bo trajalo, da
razumeš posamezno knjižnico, a so nekatere precej dobro napisane in
optimirane.

lp,

goran





More information about the lugos-prog mailing list