Я насмешливо на C++ класс, который имеет 2 перегруженных функций с помощью Google Mock и VS2010:Google Mock: Передразнивало перегруженные функции создают предупреждение 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));
// ...
};
Каждый раз, когда я компилирую, я получаю следующее предупреждение дважды:
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'
Любая идея, почему?
Это правильное поведение?
Как я могу избежать этого?
Убедитесь, что вы используете правильный вариант - MOCK_CONST_METHOD следует использовать, когда 'метод Ā' есть вы переопределение является' const'. –
@Billy ONeal - сам метод не const, только его параметры. Должен ли я использовать MOCK_CONST_METHOD? – Jonathan
Нет; в этом случае вы должны делать то, что делаете :) –