可能重复:
是否可以避免在实现文件中重复类名?
我一直在努力尝试(重新)学习 C++,但我在 C++ 面向对象编程方面遇到了一些理解问题。我最近花了很多时间在 Java 上工作,也许这让我很懒惰,但这是我遇到的问题。
这是我正在使用的不完全完整的代码:
class Pong{
public:
Pong();
void run();
private:
//Class to represent a pong ball
class Ball{
public:
Ball();
int getVector();
private:
int xvel,yvel;
};
//Class to represent a pong paddle
class Paddle{
public:
private:
};
bool init();
//The ball and player paddles
Ball ball;
Paddle p1;
Paddle p2;
};
//Ball members
Pong::Ball::Ball(){
}
//Paddle members
Pong::Paddle::Paddle(){
}
//Pong members
Pong::Pong() : ball(Ball()),p1(Paddle()),p2(Paddle()){
ball = Ball();
p1 = Paddle();
p2 = Paddle();
}
bool Pong::init(){
if(!log("Starting pong...")){return 2;}
return 0;
}
void Pong::run(){
if(Pong::init() != 0){log("Failed to initialize Pong!");}
return;
}
我在这里遇到的问题实际上是关于可读性的。我想知道是否有一种不那么难看的方式来定义成员和嵌套成员成员,而不必指定诸如 Pong::Ball::Ball() 之类的东西,IE 将命名空间放在每个成员的前面。
我在这里做错了吗?来自所有成员都定义在类本身内部的java,这似乎真的......对我来说很粗糙,也许是在类定义之外定义所有东西(包括嵌套类方法)。它有效,但我不禁觉得有更好的方法可以做到这一点,但我一直在使用的资源(cprogramming.com)说这是它需要完成的方式。
(编辑:就在有人抓住我之前,我知道我可以删除 Pong 构造函数中的重复定义。我只是还没有......)