Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;如何使用const将接口传递给类方法 < VisualStudio 2008中的原生C++ >如何使用const传递接口给类成员?执行以下操作导致此错误:_C++_Visual C++ - Fatal编程技术网

C++;如何使用const将接口传递给类方法 < VisualStudio 2008中的原生C++ >如何使用const传递接口给类成员?执行以下操作导致此错误:

C++;如何使用const将接口传递给类方法 < VisualStudio 2008中的原生C++ >如何使用const传递接口给类成员?执行以下操作导致此错误:,c++,visual-c++,C++,Visual C++,错误C2662:'IMyInterface::PublicMember1'无法将'this'指针从'const IMyInterface'转换为'IMyInterface&' class IMyInterface { virtual std::wstring PublicMember1() = 0; virtual int PublicMember2() = 0; virtual void Update(const IMyInterface & myObject) = 0;

错误C2662:'IMyInterface::PublicMember1'无法将'this'指针从'const IMyInterface'转换为'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();
}

将接口所需的方法声明为
const

class IMyInterface
{
  virtual std::wstring PublicMember1() const = 0;
  virtual int PublicMember2() const = 0;
  virtual void Update(const IMyInterface & myObject) = 0;
}

谢谢,这是一个超级快速的回答,比我编辑我在原始帖子中犯的错误要快得多