【发布时间】:2014-07-10 17:26:13
【问题描述】:
我有一个特殊的问题。我的应用程序中的代码在 VS2010 中没有任何问题,当我今天将其迁移到 VS2013 时,它给我一个错误。
代码是 -
#include "stdafx.h"
#include <iostream>
class abc
{
int value;
public:
abc() { value = 3; }
const int value() const { return ::value(*this); }
friend const int value(const abc& var){ return var.value; }
};
int _tmain(int argc, _TCHAR* argv[])
{
abc obj;
std::cout<<obj.value();
return 0;
}
它正在抛出错误-
Error 1 error C3861: 'value': identifier not found c:\consoleapplication1\consoleapplication1\consoleapplication1.cpp 13 1 ConsoleApplication1
2 IntelliSense: function "value" cannot be called with the given argument list
argument types are: (const ABC) c:\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.cpp 13 35 ConsoleApplication1
我在 StackOverFlow 和 Google 上搜索了很多,但都没有运气。
【问题讨论】:
-
不确定 V2010 如何编译该代码,但您将
value作为成员数据和成员函数。这是不合法的。 -
你想做什么?为什么要写这么多代码?
-
不能与 Microsoft Visual Studio 2010 版本 10.0.30319.1 RTMRel 一起编译:
-
请不要在一周后以使给定答案无效的方式编辑您的问题。相反,请尝试隔离您正在努力解决的问题并将其作为新问题发布。
标签: c++ visual-studio c++11 visual-studio-2013