ich spöttisch eine C++ Klasse, die zwei überladene Funktionen hat Google Mock und VS2010 mit:Google Mock: Mocked ladenen Funktionen create Warnung C4373
#include "stdafx.h"
#include "gmock/gmock.h"
#include "A.h"
class MockA : public A
{
public:
// ...
MOCK_METHOD3(myFunc, void(const int id, const int errorCode, const CString errorMsg));
MOCK_METHOD1(myFunc, void(const CString errorMsg));
// ...
};
Jedes Mal, wenn ich kompilieren bekomme ich die folgende Warnung zweimal:
1>c:\dev\my_project\tests\mocka.h(83): warning C4373: 'MockA::myFunc': virtual function overrides 'A::myFunc', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
1> c:\dev\my_project\my_project\include\a.h(107) : see declaration of 'A::myFunc'
Irgendeine Idee warum?
Ist das korrektes Verhalten?
Wie kann ich das vermeiden?
sicher, dass Sie die richtige Variante verwenden - MOCK_CONST_METHOD verwendet werden sollte, wenn 'A' Methode Sie überschrieben ist' const'. –
@Billy ONeal - Die Methode selbst ist nicht const, nur ihre Parameter sind. Sollte ich MOCK_CONST_METHOD noch verwenden? – Jonathan
Nein; In diesem Fall sollten Sie tun, was Sie tun :) –