首页 > 解决方案 > 全局变量与通过多个函数传递相同的变量

问题描述

什么被认为是使用的最佳实践?通过多层函数传递相同的参数或在类中声明全局变量。在性能方面,什么更好?

我可以采取不同的方法吗?

通过多层函数传递相同的参数:

Class MyClass() {
    public:
        funcA(int averages, bool debug);

    private:
        funcB(bool debug);
        funcC(int averages, bool debug);
        funcD(int averages);
};

void funcA(int averages, bool debug) {
    funcB(debug);
    // do stuff
    if (debug)
        // print stuff
    funcC(averages, debug);
}

void funcB(bool debug) {
    // do stuff
    if (debug)
        //print stuff
}

void funcC (int averages, bool debug) {
    // do stuff  
    funcD (averages);
    if (debug)
        //print stuff
}

funcD (int averages) {
    // do something w/ averages
}

在类中声明全局变量:

Class MyClass() {
    public:
        funcA(int averages, bool debug);

    private:
        int m_averages;
        bool m_debug;

        funcB();
        funcC();
        funcD();
};

void funcA(int averages, bool debug) {
    m_averages = averages;
    m_debug = debug;

    funcB();
    // do stuff
    if (debug)
        // print stuff
    funcC();
}

void funcB() {
    // do stuff
    if (m_debug)
        //print stuff
}

void funcC () {
    // do stuff  
    funcD ();
    if (m_debug)
        //print stuff
}

funcD () {
    // do something w/ m_averages
}

标签: c++

解决方案


推荐阅读