gpt4 book ai didi

c# - 使用头文件将 get/set 从 C# 转换为 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:05 24 4
gpt4 key购买 nike

作为序言,我正在重新创建一个旧游戏项目的基本框架。它是用 C# 编写的,我正在尽最大努力将我拥有的东西转换成 C++。我也在使用 Visual Studio Professional 2013。在这个例子中,我有一个 Coordinate 类,它可以动态获取和设置其 X 和 Y 属性的值。总而言之,它相当简单。

这是 C# 类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConquestGameEngine.Map
{

public class Coordinate
{
public int X { get; set; }
public int Y { get; set; }
public Coordinate(int x, int y)
{
this.X = x;
this.Y = y;
}
}
}

这是 C++ 类和 header :

//Coordinate.h
#pragma once
class Coordinate
{
public:
Coordinate(int x, int y)
{
X = x;
Y = y;
}
~Coordinate();
int X, Y;
};

//Coodinate.cpp
using namespace std;
#include "Coordinate.h"

Coordinate::Coordinate(int x, int y)
{
Coordinate::X = x;
Coordinate::Y = y;
}

Coordinate::~Coordinate()
{
}

凭借我有限的知识和经验,以及我所做的研究/学习,我对头文件的功能和用途以及如何使用它们有了相当好的理解。但是我越是尝试重新创建在 C# 中建立的 get-set 原则,我就越是对某些东西应该放在 .h 还是 .cpp 中感到困惑。在熟悉库以及如何使用它方面,我也很菜鸟,所以我不知道是否有其他方法可以解决这个问题。我在网上找到的所有示例都无法解决我的问题或回答我的问题,或者太笼统或太具体而无法提供帮助。

有一个名为 TilePattern 的类的次要问题,它由坐标列表组成,但我觉得一旦我弄清楚了这个坐标问题,我就能自己解决它。

那么我是否忽略了一些非常简单的事情?是新手的错误吗?这在 C++ 中只是复杂得多吗?库中是否有我不知道的工具可以解决所有这些问题?

最佳答案

首先,看起来您正在
中定义构造函数 header ,然后在 cpp 中。那是一对多。
其次,如果 Coordinate 不对变化做出“ react ”,那么您需要的是
可能是这样的:

struct Coordinate {
int x,y;
};

不要过度设计。它仍然可以像

return Coordinate{5,7} ;

之类的。如果您确实需要 getter、setter 方法来报告
改变,检查它的内键等,是的,这在 C++ 中有点冗长,
如果你必须有赋值语法,否则常见的方法是:

int X() { return x; }
void X(int xx) { x=xx; report_change(); }

关于c# - 使用头文件将 get/set 从 C# 转换为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896947/

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