gpt4 book ai didi

c++ - C++ 接口(interface)静态类的良好使用

转载 作者:行者123 更新时间:2023-11-30 00:50:43 25 4
gpt4 key购买 nike

我正在为某些只更改某些硬件寄存器的驱动程序创建 API。我想像这样使用纯静态类来执行此操作。

class RegisterStaticClass
{
public:
static bool setRegister1( const uint8_t aValue1, const uint8_t aValue2 = 0 );
static bool setRegister2( const uint8_t aValue1, const uint8_t aValue2 = 0 );
};

我想知道这是否是最好的方法,我认为调用代码现在更容易了,因为它必须只做:

 RegisterStaticClass::setRegister1( 23, 45);

这种方法有什么缺点吗?

最佳答案

您有效地实现了命名空间。仅使用命名空间将为您提供具有更好可读性的相同语法,并且您无需担心有人试图创建该类的对象。

在命名空间中创建私有(private)函数或数据成员的方法是使用匿名命名空间:

namespace RegisterStaticClass{
//public:
bool setRegister1( const uint8_t aValue1, const uint8_t aValue2 = 0 );
//private:
namespace{
//accessible only within this namespace
bool setRegister2( const uint8_t aValue1, const uint8_t aValue2 = 0 );
}
}
//usage:
RegisterStaticClass::setRegister1( 23, 45);
RegisterStaticClass::setRegister2( 23, 45); //error

关于c++ - C++ 接口(interface)静态类的良好使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058747/

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