gpt4 book ai didi

c++ - IntelliSense 和友元函数 false 错误(VS2010)

转载 作者:行者123 更新时间:2023-11-30 04:25:21 27 4
gpt4 key购买 nike

这不是什么大问题,但我想知道在涉及类中的友元函数时 IntelliSense 是否搞砸了?

我有一个类使用 ostream 和 istream (<<, >>) 的重载运算符,并且我在我的类中将它们标记为友元函数。所以理论上他们应该可以访问类(class)的私有(private)成员。该程序编译并运行良好,没有错误 - 但随着我继续编写代码,IntelliSense 不断报告函数无法访问成员函数。它仍然可以编译,但我想知道这是 IntelliSense 的问题还是我的问题,我只是碰巧很幸运它正在运行?

    friend std::ostream & operator <<(std::ostream &, const Rational &);
friend std::istream & operator >>(std::istream &, Rational &);

std::ostream & operator <<(std::ostream & outs, const Rational & source)
{
outs << source.itsNum << '/' << source.itsDen;
return outs;
}

std::istream & operator >>(std::istream & ins, Rational & target)
{
ins >> target.itsNum >> target.itsDen;
return ins;
}

最佳答案

您的代码没有任何问题。我敢打赌 IntelliSense 会搞砸。尝试删除项目的 IntelliSense 数据库以查看错误是否会消失(IntelliSense 数据库将在 Visual Studio 重新启动后自行重建)。数据库应位于 .sln 文件旁边,并且(至少对于 Visual Studio 2008)具有扩展名 .ncb

除此之外,还有一些额外的信息。 VisualStudio AFAIK 的 IntelliSense 功能实际上是由与 Microsoft 不同的公司开发的,因此编译器和 IntelliSense 有时可能对正确与不正确有不同的看法。只是说。 :)

关于c++ - IntelliSense 和友元函数 false 错误(VS2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12209052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com