定义类(和嵌套类)成员函数的更好/更整洁/更可读的方法
A better/neater/more readable way to define class (and nested class) member functions?
可能的重复:
是否可以避免在实现文件中重复类名?
我一直在努力(重新)学习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,所有成员都是在类内部定义的,这似乎真的。。。对我来说,定义类定义之外的所有东西(包括嵌套类方法)可能很粗糙。它是有效的,但我忍不住觉得有更好的方法可以做到,但我一直在使用的资源(cprograming.com)说这是需要的方法。
(编辑:就在有人抓住我之前,我知道我可以删除Pong构造函数中的重复定义。我只是还没有…)
来自java,其中所有成员都在类本身内部定义,这似乎真的。。。对我来说,定义类定义之外的所有东西(包括嵌套类方法)可能很粗糙。
这不是问题。C++非常棒,它允许您在类定义的内部和外部定义方法。
如果你想把定义放在外面,不,没有办法减少资格。
我只是指出以下几点,因为我认为你可能搞错了:
Pong::Pong() : ball(Ball()),p1(Paddle()),p2(Paddle()){
ball = Ball();
p1 = Paddle();
p2 = Paddle();
}
应该是
Pong::Pong(){
}
即-不需要任何显式初始化。
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- 寻找一种更好的方法来表示无符号字符数组
- 哪种方法更好,性能明智
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 有没有更好的方法对C++中的三个整数进行排序?
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 编写按初始值循环的循环的更好方法是什么
- 更好的方法,而不是在C ++中使用cin.ignore
- 用 c++ 为游戏制作"bullet"的更好方法?
- 在类的第一个/最后一个实例存在之前/之后调用一对函数.有没有更好的方法?
- 做一个unordered_multimap键的平均值是更好的方法吗?
- 有没有更好的方法可以使用特征/C++实现 matlab 的逻辑索引?
- 在CMakeLists中包含目录的更好方法.txt
- 有没有更好的方法来为C++写这个?
- 有没有更好的方法来编写这个c++代码
- 将QDomDocument数据用作文本的更好方法
- 有没有更好的方法可以让我接收这些输入?C++
- C++ - 创建具有相同字符的特定大小的以 null 结尾的 c 样式字符串的更好方法
- 哪种方法更好获取静态链接DLL的模块句柄(HMODULE) - 使用GetModuleHandleEx()或LoadLibrary()?
- 静态常量成员值与成员枚举:哪种方法更好以及为什么?