Click here to Skip to main content
15,898,931 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Application Hang Pin
cpp_prgmer24-Jun-07 19:02
cpp_prgmer24-Jun-07 19:02 
GeneralRe: Application Hang Pin
cpp_prgmer25-Jun-07 0:45
cpp_prgmer25-Jun-07 0:45 
Questionphp.h header file missing Pin
Kiran Pinjala22-Jun-07 3:50
Kiran Pinjala22-Jun-07 3:50 
QuestionRe: php.h header file missing Pin
David Crow22-Jun-07 4:34
David Crow22-Jun-07 4:34 
Questionreturn value - destructor call? Pin
zqueezy22-Jun-07 2:45
zqueezy22-Jun-07 2:45 
AnswerRe: return value - destructor call? Pin
Iain Clarke, Warrior Programmer22-Jun-07 3:01
Iain Clarke, Warrior Programmer22-Jun-07 3:01 
GeneralRe: return value - destructor call? Pin
zqueezy22-Jun-07 3:12
zqueezy22-Jun-07 3:12 
GeneralRe: return value - destructor call? Pin
Iain Clarke, Warrior Programmer22-Jun-07 4:05
Iain Clarke, Warrior Programmer22-Jun-07 4:05 
The "extra" destructor you're getting is because you're being nice and elegant and writing a * operator, which (quite correctly) returns an instance (albeit a temporary one) on CMatrix.

If the constructor / destructor is "expensive", then you're going to have to do it a different way.

class CMatrix
{
public:
    ....
    BOOL Multiply (CMatrix const &lhs, CMatrix const &rhs)
    {
        if (!ValidToDoThisMaths (lhs, rhs))
            return FALSE;
        // Do gnarly maths here to multiply lhs & rhs and keep the results in this
        ....
        return TRUE;
    }
    ....
};

void main ()
{
    CMatrix A,B,C;
    
    A.Create (blah);   // <-- however you make them have something interesting in them
    B.Set (blah);

    // we'd like   C = A * B;   but that would mean expensive operations with temp matrix
    C.Multiply (A,B);

    C.DoStuff ();
}


Its less elegant, but it would solve your problem.

It would also lose the ability to do:
D = A * B * C

but frankly, matrices are enough of a pain to work with [ (n x m) * (m x n) etc ] that that's probably not a huge loss.

I hope that helped,

Iain.



AnswerRe: return value - destructor call? Pin
Nemanja Trifunovic22-Jun-07 3:03
Nemanja Trifunovic22-Jun-07 3:03 
GeneralRe: return value - destructor call? Pin
zqueezy22-Jun-07 3:24
zqueezy22-Jun-07 3:24 
GeneralRe: return value - destructor call? Pin
Nemanja Trifunovic22-Jun-07 3:28
Nemanja Trifunovic22-Jun-07 3:28 
AnswerRe: return value - destructor call? Pin
Iain Clarke, Warrior Programmer22-Jun-07 3:03
Iain Clarke, Warrior Programmer22-Jun-07 3:03 
AnswerRe: return value - destructor call? Pin
Taka Muraoka22-Jun-07 3:06
Taka Muraoka22-Jun-07 3:06 
GeneralRe: return value - destructor call? Pin
zqueezy22-Jun-07 3:14
zqueezy22-Jun-07 3:14 
AnswerRe: return value - destructor call? Pin
zqueezy25-Jun-07 11:27
zqueezy25-Jun-07 11:27 
QuestionRotating Bitmaps !!!! Pin
Adno22-Jun-07 2:43
Adno22-Jun-07 2:43 
AnswerRe: Rotating Bitmaps !!!! Pin
rrrado22-Jun-07 3:05
rrrado22-Jun-07 3:05 
AnswerRe: Rotating Bitmaps !!!! Pin
Mark Salsbery22-Jun-07 5:55
Mark Salsbery22-Jun-07 5:55 
GeneralRe: Rotating Bitmaps !!!! Pin
Adno22-Jun-07 7:34
Adno22-Jun-07 7:34 
GeneralRe: Rotating Bitmaps !!!! Pin
Mark Salsbery22-Jun-07 7:58
Mark Salsbery22-Jun-07 7:58 
GeneralRe: Rotating Bitmaps !!!! Pin
Adno22-Jun-07 8:20
Adno22-Jun-07 8:20 
QuestionRemoving Redundant Functions Pin
[d3m0n]22-Jun-07 2:42
[d3m0n]22-Jun-07 2:42 
AnswerRe: Removing Redundant Functions Pin
zqueezy22-Jun-07 3:25
zqueezy22-Jun-07 3:25 
GeneralRe: Removing Redundant Functions Pin
[d3m0n]22-Jun-07 3:50
[d3m0n]22-Jun-07 3:50 
QuestionRe: Removing Redundant Functions Pin
David Crow22-Jun-07 4:45
David Crow22-Jun-07 4:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.