gpt4 book ai didi

c++ - OOP 设计 - 将类成员变量作为类中的方法参数传递

转载 作者:搜寻专家 更新时间:2023-10-31 01:41:49 25 4
gpt4 key购买 nike

<分区>

这里是简单的示例代码,它不是最好的:

使用成员而不在参数中传递它:

class Car
{
public:
void doSomething()
{
// doing something
onEngineFailure();
}
private:
void onEngineFailure()
{
// Operate on m_Engine
}
private:
Engine m_Engine;
};

将成员作为参数传递:

class Car
{
public:
void doSomething()
{
// doing something
onEngineFailure(m_Engine);
}
private:
void onEngineFailure(const Engine& engine)
{
// Operate on engine
}
private:
Engine m_Engine;
};

在第一个示例中,方法onEngineFailure 直接对类成员变量m_Engine 进行操作。将它作为函数参数传递是没有意义的,因为汽车只能有一个引擎,而 onEngineFailure 运行的引擎将始终是 m_Engine

在第二个示例中,方法 onEngineFailure 对参数传递的引擎进行操作。无论如何,它将始终是 m_Engine

那么,哪个在设计上更正确呢?如果方法已经可以访问成员变量并且它总是只对其进行操作,那么为什么将它作为参数传递。但是,对于全局变量也可以这样说,但是应该尽可能少地使用全局变量。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com