codice:
// IWindget.h
#ifndef IWINDGET_H_
#define IWINDGET_H_
#include "Define.h"
NAMESPACE_BEGIN
/*
Name: IWindget
Author: Kleidemos
Description: An abstract class for Windget
*/
class IWindget
{
public:
IWindget(){};
virtual ~IWindget(){};
virtual void setName(string name){};
virtual void setLocation(int x, int y){};
virtual void setDimension(int x, int y){};
virtual void display(IWindget * pFrame){};
void Add(IWindget * pFrame) const;
void Remove(IWindget * pFrame) const;
IWindget& operator=(const IWindget& aWindget);
IWindget& operator+=(const IWindget& aWindget);
IWindget& operator-=(const IWindget& aWindget);
};
NAMESPACE_END
#endif // IWINDGET_H_
// IWindget.cpp
#include "IWindget.h"
NAMESPACE_BEGIN
/*
Add a Form
*/
void IWindget::Add(IWindget * pFrame) const
{
pFrame->display(pFrame);
}
/*
Remove a form
*/
void IWindget::Remove(IWindget * pFrame) const
{
// TODO
}
/*
The equal operator
*/
IWindget& IWindget::operator=(const IWindget& aWindget)
{
if(this == &aWindget) // Check addresses, if equal
return *this;
return *this;
}
/*
The addition operator
*/
IWindget& IWindget::operator+=(const IWindget& aWindget)
{
aWindget.Add(&aWindget);
return *this;
}
/*
The substraction operator
*/
IWindget& IWindget::operator-=(const IWindget& aWindget)
{
return *this;
}
NAMESPACE_END
Ma compilandolo mi da:
C:/Documents and Settings/Luca/Documenti/Astraz/IWindget.cpp: In member
function `Utils::IWindget& Utils::IWindget:
perator+=(const
Utils::IWindget&)':
C:/Documents and Settings/Luca/Documenti/Astraz/IWindget.cpp:36: invalid
conversion from `const Utils::IWindget*' to `Utils::IWindget*'
C:/Documents and Settings/Luca/Documenti/Astraz/IWindget.cpp:36: initializing
argument 1 of `void Utils::IWindget::Add(Utils::IWindget*) const'
Execution terminated
Help meeeeeeeeeeee