gpt4 book ai didi

c++ - C++ 中的公共(public)字段或类似 C# 的属性?

转载 作者:行者123 更新时间:2023-11-30 02:56:31 25 4
gpt4 key购买 nike

好吧,我正在尝试为我在 C++ 中的类创建类似于 C# 中的属性的东西。

例如。在 C# 中我会这样做:

int MaxHP { get; set; }

或者,使用支持字段:

int MaxHP 
{
get { return maxHP; }
set { maxHP = value; }
}

但是到目前为止,对于 C++,我只能通过以下方式复制它:

private:    
int maxHP;
int maxEP;
public:
int GetMaxHP() { return maxHP; }
void UpSetMaxHP(int value){ maxHP += value; }
void DownSetMaxHP(int value){ maxHP -= value; }
int GetMaxEP(){ return maxEP; }
void UpSetMaxEP(int value){ maxEP += value; }
void DownSetMaxEP(int value){ maxEP -= value; }

我一定在设计事物的方式上遗漏了一些东西。在 C# 中,可以像访问字段一样访问该属性。但是在 C++ 中,我必须执行从其他对象访问时工作方式不同的函数。

我想我能做到:

public:
int MaxHP;

但这感觉好像我有点违背了目的。所以我的问题是,我这样做是否正确,或者是否有更好、更正确的方法来实现这一目标?

最佳答案

无需创建单独的 getter 和 setter 函数,您可以拥有一个返回引用的函数,该引用可以以任何一种方式使用:

public:   
int &max_hp() { return maxHP; }

与仅仅将 maxHP 公开不同,这允许您放置一个断点以查看何时访问该变量,如果您以后想要添加条件或记录日志,您可以在不更改类接口(interface)的情况下执行此操作。

关于c++ - C++ 中的公共(public)字段或类似 C# 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443671/

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