c++ 的 难题

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:11:59
class TerrainFrameListener : public ExampleFrameListener
{
public:
TerrainFrameListener(RenderWindow* win, Camera* cam)
: ExampleFrameListener(win, cam)
{
// Reduce move speed
mMoveSpeed = 50;
}
bool frameRenderingQueued(const FrameEvent& evt)
{
if( ExampleFrameListener::frameRenderingQueued(evt) == false )
return false;

我学习c++,看到这样一段代码,
class TerrainFrameListener : public ExampleFrameListener
这一句看起来应该是在定义一个派生类,下面这句是什么作用呢?
public:
TerrainFrameListener(RenderWindow* win, Camera* cam)
: ExampleFrameListener(win, cam)
我看不明白,还有这一句又在做什么?
if( ExampleFrameListener::frameRenderingQueued(evt) == false )
return false;

请达人讲解一下,不胜感激!
今天看了后,明白了一些,看来几位回答都是正解,把分给 jaycnvip 了,谢谢几位了。

1.
class TerrainFrameListener : public ExampleFrameListener {}
class 派生类名 : [继承方式] 基类名 {}
这是类的派生,本题表示类TerrainFrameListener 公有继承 类ExampleFrameListener

2.
public:
TerrainFrameListener(RenderWindow* win, Camera* cam)
: ExampleFrameListener(win, cam)
在派生执行类的构造函数时,如果有需要,可以显式调用基类的构造函数用初始化数据成员,这种 : 的方式来源于 参数初始化表对数据成员初始化。
本题的思路很明显,在调用类TerrainFrameListener的构造函数时,往下调用它的基类ExampleFrameListener的构造函数,同时将两个参数传给它。

3.
if( ExampleFrameListener::frameRenderingQueued(evt) == false )
return false;
:: 叫作用域限定符 或 域限定符,它用于限定紧跟在它后面的对象的从属范围,从属范围可以是一个类或是命名空间,从属范围(某个对象或类名)紧在 :: 之前

1.
class TerrainFrameListener : public ExampleFrameListener
class 派生类名 :[继承方式] 基类名
2.
public:
TerrainFrameListener(RenderWindow* win, Camera* cam)
: ExampleFrameListener(win, cam)
派生类的构造函数,在函数体中只对派生类新增的数据成员初始化
3.
if( ExampleFrameListener::frameRenderingQueued(evt) == false )
return fal