zoukankan      html  css  js  c++  java
  • C++ 全局变量不明确与 using namespace std 冲突

    写了个汉诺塔,使用全局变量count来记录步数,结果Error:count不明确

    #include <iostream>
    using namespace std;
    int count = 0;
    
    void hanoi(int num, char source, char through, char target){
        if (num == 0) return;
        hanoi(num - 1, source, target, through);
        printf("%d from %c to %c
    ", num, source, target);
        count++;
        hanoi(num - 1, through, source, target);
    }

    后来才知道 std命名空间里有std::count,所以与全局变量count冲突

    std::count

    template <class InputIterator, class T>
    typename iterator_traits<InputIterator>::difference_type
    ​        count(InputIterator first, InputIterator last, const T& val);
    

    所以修改方法有以下几种:

    1.全局变量count改为cnt(或其他名称)

    2.使用count的地方改为::count

    #include <iostream>
    using namespace std;
    int count = 0;
    
    void hanoi(int num, char source, char through, char target){
        if (num == 0) return;
        hanoi(num - 1, source, target, through);
        printf("%d from %c to %c
    ", num, source, target);
        ::count++;
        hanoi(num - 1, through, source, target);
    }

    3.不要使用using namespace std,使用using namespace std是不好的习惯

  • 相关阅读:
    动态改变Spring定时任务执行频率
    tomcat
    liunx命令
    idea 使用笔记
    redis 笔记
    学习笔记 Optional
    JPA Example 基本使用使用实例
    面试经验总结
    基于LAMP实现后台活动发布和前端扫码签到系统
    XV6源代码阅读-文件系统
  • 原文地址:https://www.cnblogs.com/dj0325/p/8491649.html
Copyright © 2011-2022 走看看