- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚和我的一个 friend 一起回到 C++。我正在编写一个基于文本的基本地牢游戏,试图让玩家向上、向下、向左和向右移动。那么我的问题有两个部分。
我创建了一个 Map 类、一个 Player 类和一个 GameLoop 类。发生的一切显然都在我的 GameLoop 中。 Map 类有一个名为 Move() 的函数来移动玩家。在 Map 类中,我应该让我的 Player 类对 Map 类有友元访问吗?我对何时使用 friend 类有点困惑。我想知道游戏循环函数是否应该使用 map.Move(),或者我是否应该将 Move() 放入 Player 类中,让他们成为 friend ,然后使用 player.Move()。
我的 map 类保存坐标的私有(private)数据,这是我的玩家所在的位置。
我知道这可能有点主观,但我说的是一般情况。使用友元类比直接使用 Map 对象更有效吗?
关于我的第二个问题。我知道类很常见,但我想知道对象是否如此。是否应该为每个类至少创建一个对象,或者您甚至可以创建一个类并在不创建对象的情况下使用它?
最佳答案
类很有用,因为它们可以有方法和状态/数据。一般来说,如果你的类中有任何数据,你不创建任何对象是没有意义的。然而,您可以实现一个仅由公共(public)静态函数组成的实用程序类。在这种情况下,您不必创建任何对象。
Class CMyHelper
{
public:
static double calculateDistance(CPoint A, CPoint B);
static double calculateArea(double length, double width);
//...
private:
// You can even explictly say, I don't want make objects of this class.
// You'll get a compile-time error if someone tries.
CMyHelper();
CMyHelper(const CMyHelper&);
}
CPoint A(100, 200);
CPoint B(50, 100);
//Call static method without instantiation
CMyHelper::calculateDistance(A, B);
在您的情况下,我们可以看到不需要使用静态类和友元类。
对我来说, friend 类是我最后求助的事情。根据您的描述,您可以将 move()
设为 player
类的公共(public)方法,因为真正“移动”的是玩家而不是 map
。此外,您需要向我们说明您的 map
类是做什么的。
编辑:如果您的 map 类足够简单可以删除,您可以将玩家的坐标移动到玩家类。
Class CPlayer
{
public:
void move()
{
// moves up, down, left, or right
// update m_position
}
}
private:
CCoordinate m_position;
}
关于c++ - 我应该在这里使用 friend 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846384/
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
假设您有一个拥有十亿用户的社交网络。在每个用户的页面上,您想要显示该用户的 friend 数、 friend 的 friend 等等,最多五度。友谊是相互的。计数不需要立即更新,但它们应该是精确的。
public void notMyFriend(Student student1) { System.out.println("Friends who are not my frien
我有如下3个表格 用户 - id integer primary_key - user_name friend - id autoincrement primary_key - user1 integ
如何从 Friends 表中获取 friend 列表以及我 friend 的 friend 数(不包括我的 friend 数) friend 表"tbl_users_friends 字段 1:id字段
我的 MySQL 表结构是这样的。 USER int id varchar username FRIEND_LIST int user_id int friend_id 对于每个 friend 关系,
假设 a,b,c 和 b,d,e 和 c,f,g 和 a,e,g,h 是 friend 。所以 获取共同好友 b/w a&b: MATCH (me:User {username:'a'}) -[r:F
我正在开发“可能的 friend ”功能。我需要显示所有不是我 friend 的 friend 的 friend ,也不要发送我或没有我的待处理请求 FRIENDSHIPS user_id frien
如果两个用户是 friend ,我在“ friend ”表中有一个条目,如下所示: table: friends ------------------------ uid1
我有一个 friend 表,用于跟踪数据库中的关系 - 我将一个查询与子查询放在一起,该子查询从 friend 的 friend 那里获取个人资料信息 我的 friend 表如下所示 - id 双向出
我想结交 friend 的 friend 的 friend 。我得到了结果,但我不确定我的查询是否正确。我正在使用嵌套选择。 我的问题是: 查询是否正确? 我如何使用 join 执行此查询? 这是我的
假设我有一个包含 friend 属性的用户对象。这个 friends 属性是其他用户对象的数组,因此是你的 friend 。找到你 friend 的 friend 但不是你 friend 的最快算法是
我想结交我的 friend 以及 friend 的 friend ,但仅限于二级 friend 我的表结构是这样的 user_id friend_user_id 1 2 1
为了了解使用 Neo4J 建立 friend 关系的优势,我在 MySQL 数据库上创建了一张用于 Persons 的表(“Persons”,20900 个数据集): id | name --
假设我有一个名为“ friend ”的表,对于每个友谊,我添加两个条目。例如,如果用户 1 和 2 是 friend ,我们将有: uid1 uid2 ---------- 1 2 2 1
在我的图形数据库中,我有 Twig 和树叶。分支可以“包含”叶子,分支可以“包含”分支。 如何使用 Gremlin 找到与给定分支直接或间接相关的所有叶子? 我让这个在 Cypher 中工作: STA
我正在尝试使用 iPhone Facebook SDK 获取我 friend 的 friend 列表。我尝试了一种使用 FQL 和 Graph API 的方法,但在这两种情况下我都遇到了错误: "Ca
我有这个 MySQL 表: 假设我以用户 1 的身份登录,正在浏览用户 2 的个人资料。由于我们是共同的 friend (1 是 2 的 friend ,2 是 1 的 friend ),我需要回应“
我想得到我 friend 的 friend 不是我 friend 的 friend 。我有一张这样的 table :用户 friend (idUser,idUserFriend) 我在想这样的事情:
我有这个 Cypher 查询... match (p:Person{userid:8432})-[r:friends_with]->(p1:Person)-[r2:friends_with]->(p2
我是一名优秀的程序员,十分优秀!