gpt4 book ai didi

c++ - protected 数据成员的 protected 获取函数?

转载 作者:行者123 更新时间:2023-11-30 03:57:41 28 4
gpt4 key购买 nike

我们有两个类(class)(A 和 B)。 A类只能由继承它的类创建(A类)B 类可以由用户创建。

A 类,版本 1 有一个private 数据成员,并且有方法访问 A 类中的数据。

A 类,版本 2 有一个protected 数据成员,因此,从该类继承的类不需要任何方法来访问 A 类中的数据

A 类,版本 1

class A
{
protected:
A() = default;

void set_data( T d );
T& get_data();
private:
T data;
}

A 类,版本 2

class A
{
protected:
A() = default;

T data;
}

B 级

class B : public A {}

哪个版本的 A 类是首选?

最佳答案

这是相当主观的,但我会说 95% 的情况下两者都不是。 protected 数据使您的代码与公开的代码一样难以维护,因此我们立即排除该版本。但是您几乎永远不需要直接的修改器(设置)函数,因此我们将砍掉该函数,然后将 get 函数的签名更改为 const T& get_data() const;。然后我们将向父级添加一个真实接口(interface)来操纵其状态,而不是让外部的东西决定新状态应该是什么。

关于c++ - protected 数据成员的 protected 获取函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823381/

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