C++ 使用参数与成员变量的方法

C++ 使用参数与成员变量的方法,c++,methods,arguments,C++,Methods,Arguments,当我编写一个类方法并希望将参数传递给这个方法时,我经常想知道什么被认为是“更好的” 选项:使用成员变量 class Foo { public: int x, y, result; void SomeMethod() { x = 4; y = 10; AddMethod(); } void AddMethod() {

当我编写一个类方法并希望将参数传递给这个方法时,我经常想知道什么被认为是“更好的”

  • 选项:使用成员变量

    class Foo {
        public:
            int x, y, result;
    
            void SomeMethod()
            {
                x = 4;
                y = 10;
                AddMethod();
            }
    
            void AddMethod()
            {
                result = x + y;
            }
    }
    
  • 选项:传递参数

    class Foo {
        public:
            int result;
    
            void SomeMethod()
            {
                result = AddMethod(4, 14);
            }
    
            int AddMethod(int x, int y)
            {
                return (x + y);
            }
    }
    

  • 就我个人而言,我通常倾向于使用第二种选择,因为对我来说,它更容易阅读和理解。使用一个或另一个代码的正确推理是什么

    OOP中的类是描述对象的东西。以现实世界中的物体为例,汽车。该车可具有
    加速至速度(双倍速度)等功能
    和一些成员喜欢
    颜色。方法是对象所做的事情,成员描述对象或显示拥有(汽车可以有发动机
    发动机;
    )。“成员是什么”和“什么是方法”的整个概念是在面向对象编程的基础上的,它不依赖于语言,而是依赖于语言。 您仍然可以这样编写一个汽车类:

    class Car {
        ...
        double target_speed;
        ...
        void set_target_speed(double speed) {
            target_speed = speed;
        }
        void accelerate_to_speed() {
            current_speed = target_speed;
        }
        ...
    }
    

    语言会允许,但这意味着什么?汽车的目标速度是多少?如果不使用汽车,目标速度意味着什么?

    它是对象状态的一部分还是仅在单个成员函数的上下文中使用?我认为你的示例不是最好的,因为对于你正在做的事情,我根本不会编写一个类来回答这类问题。这完全取决于环境,而你没有表现出来。我明白这是因为你想要一个通用的程序指南,但是没有任何一个——你必须思考和考虑每种情况下的情况,并根据这些论点做出决定。但“这方面没有一般的指导方针”,这也是一个答案,对我很有帮助。即使你最肯定的问题也没有很好的共鸣,谢谢你的回答。