指针与类中的变量

Pij*_*usn 8 c++ variables pointers coding-style

我知道它们有什么不同以及它们是如何工作的,但这个问题更多的是关于编码风格.

每当我编写代码时,我会创建很多类,它们都有变量,其中一些是指针,一些是正常变量.我通常更喜欢变量指针,如果成员持续和类一样长,但我的代码变成这样:

engine->camera.somevar->x;
// vs
engine->camera->somevar->x;
Run Code Online (Sandbox Code Playgroud)

我不喜欢中间的圆点.或者使用私有变量:

foo_.getName();
// vs
foo_->gatName();
Run Code Online (Sandbox Code Playgroud)

我认为这个点在长代码中"消失".我发现- >在某些情况下更容易阅读.

我的问题是如果你使用指针即使变量将在构造函数中创建并在析构函数中删除?在这种情况下有任何风格建议吗?

PS我认为在某些情况下,点看起来更好.

Mar*_*ork 6

首先,暴露成员变量是不好的形式.

其次你的类应该永远不会容器指针.

轻微的证据:包含业务逻辑的类永远不应该有指针(因为这意味着它们还包含指针管理代码和指针管理代码应留给没有业务逻辑但专门用于管理指针的类(智能指针和容器).

指针管理类(智能指针/容器)应设计为管理单个指针.管理不止一个比你想象的困难得多,我还没有找到一个额外的复杂性得到回报的情况.

最后,公共成员不应公开底层实现(即使通过getter/setter也不应提供成员访问权限).这将接口与实现紧密绑定.相反,您的公共接口应该提供一组可以在对象上执行的操作.即方法是verbs.

在C++中,很少看到指针.
它们通常隐藏在其他类中.但是,你应该习惯使用的混合物->,并.作为这一切都取决于上下文和你要表达什么.只要代码清晰可读,就没那么重要了.

个人附录:

我讨厌_在你的标识符的末尾它做了.消失foo_.getName()我觉得它看起来好多了foo.getName()