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

superwavelet 2011-12-01 07:01:50
Matrix3x3.h 头文件里面这么写:

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文件里面这样写:

#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

求解
...全文
327 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
神-气 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

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

Thank you!
superwavelet 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zjs100901 的回复:]

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

谢谢
superwavelet 2011-12-01
  • 打赏
  • 举报
回复
那个ncb到底是什么文件?
superwavelet 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zjs100901 的回复:]

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

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

这是什么原因呢?
zjs100901 2011-12-01
  • 打赏
  • 举报
回复
NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。
zjs100901 2011-12-01
  • 打赏
  • 举报
回复
退出工程,删除ncb等临时文件,再打开试试。
superwavelet 2011-12-01
  • 打赏
  • 举报
回复
最后我改成这样:

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
  • 打赏
  • 举报
回复
实现文件改成这样:

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

怪了?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧