+ -
当前位置:首页 → 问答吧 → 为何在vs 2008 里面右击显示 the symbol 'v' is not defined?

为何在vs 2008 里面右击显示 the symbol 'v' is not defined?

时间:2011-12-01

来源:互联网

Matrix3x3.h 头文件里面这么写:

C/C++ code
namespace iiippp
{
  class Point2
    {
             /**
    Add to this Point2 the Vector2 'v'.
    */
    void operator+= (const Vector2& v);
    /**
    Subtract from this Point2 the Vector2 'v'.
    */
    void operator-= (const Vector2& v);
     }
}

cpp文件里面这样写:

C/C++ code
#include <Math2D/Matrix3x3.h>

using namespace ITCS4120;

void operator+= (const Vector2& v)
    {
    array[0]+=v.array[0];
    array[1]+=v.array[1];
    }

void operator -=(const Vector2& v)
    {
    v.array[0]=9;
    }



然后鼠标放在v.array[0]==9; 这行的 v 上面右击 显示the symbol 'v' is not defined?
并且v 这个字母那儿下面有红色下划线

奇怪的是
void operator+= (const Vector2& v)
  {
  array[0]+=v.array[0];
  array[1]+=v.array[1];
  }
里面的 array[1]+=v.array[1]; 这行的 v 上面右击则能找到定义的地方: const Vector2& v

求解

作者: superwavelet   发布时间: 2011-12-01

实现文件改成这样:

C/C++ code
void operator+= (const Vector2& v)
    {
    array[0]+=v.array[0];
    array[1]+=v.array[1];
    }
void Point2::operator -= (const Vector2& v)
    {
    array[0] -=v.array[0];
    array[1] -=v.array[1];
    }

在第二个函数里面,第一行的 v 上面右击则能找到定义的地方
但是在第二行的 v 上面右击竟然出现 the symbol 'v' is not defined

怪了?

作者: superwavelet   发布时间: 2011-12-01

最后我改成这样:

C/C++ code
void Point2::operator+= (const Vector2& v)
    {
    array[0]+=v.array[0];
    array[1]+=v.array[1];
    }
void Point2::operator -= (const Vector2& v)
    {
    array[0] -=v.array[0];
    array[1] -=v.array[1];
    }


第一个函数的v 都能找到定义;
在第二个函数里面,第一行的 v 上面右击则能找到定义的地方
但是在第二行的 v 上面右击竟然出现 the symbol 'v' is not defined

作者: superwavelet   发布时间: 2011-12-01

退出工程,删除ncb等临时文件,再打开试试。

作者: zjs100901   发布时间: 2011-12-01

引用 3 楼 zjs100901 的回复:

退出工程,删除ncb等临时文件,再打开试试。


这样就好了,为啥?我就删了ncb文件

这是什么原因呢?

作者: superwavelet   发布时间: 2011-12-01

那个ncb到底是什么文件?

作者: superwavelet   发布时间: 2011-12-01

NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。

作者: zjs100901   发布时间: 2011-12-01