来自同一父级的另一个子类中的 return 函数不返回任何内容
return function in another child class from the same parent returns nothing
好吧,所以我有 3 个类,其中 2 个是子类。父类是实体类,它有一个获取精灵坐标的函数。如果我在main()中运行这个函数,它可以正常工作。
然后我有一个 Wolf 类,它需要一个在其构造函数中传递的玩家。在狼中.cpp有一个更新函数,我每次滴答都会运行它,它需要为玩家获取坐标。
我的猜测是我错误地传入了播放器,它制作了一个副本或其他东西。但是我不知道如何正确地做到这一点,现在在谷歌上搜索并没有真正的帮助。对我来说最好的事情就是直接回答。以下是子类。如果您还需要实体类,请告诉我。
沃尔夫·
#pragma once
#include "Entity.h"
#include "Player.h"
class Wolf : public Entity{
public:
Wolf(float speed, Player p);
sf::Clock clock;
sf::Vector2f playerCoords;
Player player;
public:
void update();
};
狼.cpp
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include "Wolf.h"
#include <iostream>
#include "math.h"
sf::Texture holdTexture;
sf::Sprite holdSprite;
Wolf::Wolf(float speed, Player p) :
Entity(holdSprite, speed),
player(p)
{
holdTexture.loadFromFile("Assets\Wolf.png");
sprite.setTexture(holdTexture);
}
玩家.h
#pragma once
#include "Entity.h"
class Player : public Entity {
public:
Player(sf::Sprite sprite, float speed);
sf::Clock clock;
public:
void update();
};
播放器.cpp
#include "Player.h"
Player::Player(sf::Sprite sprite, float speed) :
Entity(sprite, speed)
{}
您可能
希望引用Player
:
class Wolf : public Entity{
public:
Wolf(float speed, Player& p);
// ^
sf::Clock clock;
sf::Vector2f playerCoords;
Player& player; // <<<<<<<<<<
// ^
public:
void update();
};
Wolf::Wolf(float speed, Player& p) :
// ^
Entity(holdSprite, speed),
player(p)
{
// ...
}
这应该可以解决您的问题。
相关文章:
- C++函数中的精确"return"矩
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- 如何解决类成员函数中的"return a value"错误?
- 错误:调用 .. at return 语句时没有匹配函数
- 当你只使用 return 时,函数返回什么类型;在 c++ 中
- 编译器说这个函数必须返回一个值,但我已经有一个 return 语句
- 如果 return 语句在带括号的循环中,错误可能会到达非 void 函数的末尾,但不会显示在没有括号的循环的情况下
- return 语句,该语句调用在返回 void 的函数中返回 void 的函数
- 调用函数后返回 0 而不"return(0);"
- 为什么在"return 0"之后调用析构函数?
- 为什么"return 0"适用于在函数中返回指针,但不适用于参考?
- return语句中的C++constexpr函数
- 用return语句结束析构函数安全吗
- 控制达到非空隙函数的末端[-werror = return-type](只是一个简单的法官)
- 复制 ELISION:在 return 语句中使用三元表达式时未调用移动构造函数
- 当我在递归函数中调用 return 时,我的程序意外完成
- 返回 std::string 的函数在没有 return 语句的情况下崩溃,这与返回 int 而不返回语句的函数不同
- 为什么构造函数"return"这个指针?
- Boost.Type_erasure:成员函数return _self
- 我们必须在函数"return"末尾写什么?在 C++ 中