如何从另一个类调用一个类中的函数?(C++)
How do I call a function in one class from another class? (C++)
我将从一些上下文开始。
制作一个简单的游戏。
我有两个类,一个叫BouncingBall,另一个叫ASCIIRenderer。我有一份说明清单,但有些说明并不完全清楚。
第一条指令是在BouncingBall中创建一个名为m_pRenderer的指针,并使其指向ASCIIRenderer中的成员变量。它没有指定我必须指向哪个成员变量,而且其中现有的两个成员变量都是私有的,所以我自己创建了它,并称之为Renderer。
第二条指令(我需要帮助)是在为BouncingBall类编写函数时使用m_pRenderer调用SetPixel,并使用三个变量作为参数。
SetPixel是ASCIIRenderer类中一个公共函数的名称,指令指出我必须以某种方式使用指针来调用它。
摘要:我需要使用指针从一个单独类的函数中调用一个类的函数。
有人能向我解释一下我将使用什么语法来实现这一点吗?
根据您提供的详细信息,我收集到了这些信息。假设BouncingBall类将获得X和Y位置,并用要设置"渲染器"的X和Y值。还有,我不知道你会怎么做初始化指针,因为上面没有详细说明。希望这能有所帮助。
class BouncingBall
{
public:
void foo( int posX, int posY)
{
m_pRenderer->setPixel( posX, posY);
}
private:
ASCIIRenderer* m_pRenderer;
};
我下面包含的代码显示了一个类的示例,在本例中为Ball
,它有一个指向另一个类(在本例为Renderer
)的指针,该指针被注入并存储以供以后使用。
然后,Ball
类可以使用"箭头"语法pointer->MemberFunction(arg1, arg2);
调用Renderer
类上的公共函数
#include <iostream>
class Renderer
{
public:
/* Constructor and other functions omitted */
void SetPixel(const int x, const int y) const;
};
void Renderer::SetPixel(const int x, const int y) const
{
std::cout << "Set pixel: (" << x << ", " << y << ")" << std::endl;
}
class Ball
{
public:
Ball(const Renderer *const renderer, const int posX, const int posY);
void Render() const;
private:
const Renderer* _renderer;
int _posX;
int _posY;
};
Ball::Ball(const Renderer *const renderer, const int posX, const int posY)
: _renderer(renderer), _posX(posX), _posY(posY)
{}
void Ball::Render() const
{
_renderer->SetPixel(_posX, _posY);
}
int main()
{
const Renderer renderer;
const Ball ball(&renderer, 10, 20);
ball.Render();
return 0;
}
程序的输出为:Set pixel: (10, 20)
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '