In native C++ using Visual Studio 2008 how do I pass an interface to a class member using const? Doing the following caused this error:
error C2662: ‘IMyInterface::PublicMember1’ cannot convert ‘this’ pointer from ‘const IMyInterface’ to ‘IMyInterface &’
class IMyInterface
{
virtual std::wstring PublicMember1() = 0;
virtual int PublicMember2() = 0;
virtual void Update(const IMyInterface & myObject) = 0;
}
class MyClass : public IMyInterface
{
private:
std::wstring privateMember1;
int privateMember2;
public:
virtual std::wstring PublicMember1() { return privateMember1; }
virtual int PublicMember2() { return privateMember2; }
virtual void Update(const IMyInterface & myObject);
}
void MyClass::Update(const IMyInterface& myObject)
{
privateMember1 = myObject.PublicMember1();
privateMember2 = myObject.PublicMember2();
}
Declare the required methods of the interface as
const