代码之家  ›  专栏  ›  技术社区  ›  Nazgob

警告和SunStudio C++编译器

  •  0
  • Nazgob  · 技术社区  · 17 年前

    我说服我的团队再次启用编译器警告。一些警告(-w)是如何被禁用的(不要问…)。其中大多数是显而易见的,但其中一个确实令人讨厌。我从我的约会和时间课程中得到它,这些课程在很多地方都有使用。故事很简单。时间是日期的子类,它们都定义了运算符。这有什么不对?以下是我得到的警告:

    Warning: ACTime::operator- hides the function ACDate::operator-(const ACDate&) const.
    

    也许有人能把我的文档描述给SunStudio C++编译器警告的意思是什么?我找不到这个。。。谢谢

    2 回复  |  直到 17 年前
        1
  •  3
  •   Timo Geusch    17 年前

    我以前在SunStudio编译器中见过这种情况。基本上,您有这样一个构造:

    class ACDate
    {
       public:
         ACDate &operator-(const ACDate &);
    };
    
    class ACTime : public ACDate
    {
        public:
        ACTime &operator-(const ACTime &);
    };
    

    这种情况的一种解决方法是在ACTime的类声明中显式地“使用ACDate::operator-”,但这可能不是您想要的。

        2
  •  1
  •   Michael Kristofik    17 年前

    我可以帮你解决这个特别的警告-它看起来很像这个 C++ FAQ Lite . 您是否碰巧更改了ACTime::operator-使用的参数类型,而不是ACDate中的参数类型?