zoukankan      html  css  js  c++  java
  • 记录 今天又犯的两个错误 static类成员变量和 operator<<

    问题1:

      在A.h中 声明了static std::vector<int> _elems;

      然后再A.cpp中 再一次忘了 添加 std::vector<int> Fibonacci::_elems;

      尽管后来想起来了,但第一次添加时依然写错了代码,写成了std::vector<int> _elems;

    问题2:

      基类num_sequence.cpp中 重载了std::ostream& operator<<( std::ostream &os, const num_sequence &ns ){ return ns.print( os ); },

    然后在main中写 cout << fib << endl; (注:这里Fibonacci fib;  Fibonacci 类继承了num_sequence) 时一直报错,自己却不知道错在哪里,最后无耻的再main.cpp文件中main方法前加了std::ostream& operator<<( std::ostream &os, const Fibonacci &ns ){ return ns.print( os ); }函数,然后通过运行。

      最后百度关键字“ 重载 输出操作符 ”后知道问题是友元的知识。

      好丢人,昨天才写的博客,关于重载和友元的东西,为什么昨天那么多重载都上机测试了,唯独不测试这个<<?

      

    PS给自己以后看:最后的合理解决方法:类num_sequence.h中添加friend std::ostream& operator<<( std::ostream &os, const num_sequence &ns );

      

  • 相关阅读:
    软件补丁问题(网络流24题)
    飞行员配对方案问题(网络流24题)
    [NOIp普及组2011]瑞士轮
    如何在Linux上安装QQ
    [洛谷P2420] 让我们异或吧
    高斯消元
    [SCOI2014]方伯伯的OJ
    [USACO1.3]虫洞
    KMP算法讲解
    [洛谷P1382] 楼房
  • 原文地址:https://www.cnblogs.com/ziyoudefeng/p/2407094.html
Copyright © 2011-2022 走看看