繁体   English   中英

在c ++中,当我大量使用多级指针时,使用typedef简化它是一个好方法吗?

In c++, when I am using multi-level pointer a lot, is it a good way to use typedef to simplify it?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在c ++中,当我大量使用多级指针时,使用typedef简化它是一个好方法吗?

2 个回复

是的,增加代码的可读性是一个好习惯。

让我们说你有:

class Foo
{
  public:
    Foo(const myotherlib::x509::certificate& cert);

  private:

    myotherlib::x509::certificate m_cert;
}

稍微键入一下内容是个好主意:

class Foo
{
  public:

    typedef myotherlib::x509::certificate cert_type;

    Foo(const cert_type& cert);

  private:

    cert_type m_cert;
}

这样可以提高代码的可读性,并具有副作用,即如果您更改基础证书类,则只需更改typedef

为了更完整地回答,同一规则可能适用于“多级”指针:如果您确实在各处编写Foo*** ,那么使事情更具可读性确实是一个好主意,而typedef则是一个好主意。工具。

如果有一天您决定用具有相同语义的类替换Foo*** ,那么更改将是微不足道的,不仅在您的代码中,而且在所有使用您的客户代码中。

是的,拥有typedef总是一个好主意。 例如,

typedef int* intp;
typedef int** intpp;

现在,如果您的代码是真正组织的,则只需更改typedef即可使用自定义或任何其他智能指针。 例如

typedef auto_ptr<int> intp;

这可能是调试的好方法。

1 在 C 中,将 typedef 用于指针是一种好形式吗?

考虑以下 C 代码: 我的理解是结果将是 x 是“char”类型的指针。 然而,如果 x 的声明发生在远离 typedef 命令的地方,代码的人类读者将不会立即知道 x 是一个指针。 或者,可以使用 哪个被认为是更好的形式? 这不仅仅是风格问题吗? ...

2 简化使用C ++中的共享指针的方法

我正在忙于设计一个新的C ++应用程序。 在此应用程序中,我想最大程度地减少指针的潜在错误,并且由于该应用程序应为纯C ++(没有.Net或其他花哨的东西),因此我正在研究共享指针,并考虑在各处使用共享指针(而不是普通指针)。 我想出了一些技巧来简化共享指针的使用,例如:在类中使用typ ...

3 在C [duplicate]中使用typedef时使用指向struct的指针

这个问题在这里已有答案: 输入deff指针是个好主意吗? 14个答案 为了在C中定义新的数据类型,例如链表的类型 可以使用以下定义之一 从我所看到的,通常的做法是第一个定义。 问题是第二个定义是否也是可接受的做法。 在哪种情况下,如果有人应该比 ...

4 使用指针简化C ++中的代码

这是我的代码: 我正在寻找一种避免循环后出现的零件的方法。 我已经有co1-4值了,可以在任意点调用此方法来旋转坐标。 我宁愿直接访问这些值,而不是将它们粘贴在列表中,进行更改,然后将其分配回来。 有没有办法做到这一点? ...

6 在C中使用指针的typedef [duplicate]

这个问题在这里已有答案: 输入deff指针是个好主意吗? 14个答案 与C中的typedef和指针混淆[重复] 2个答案 我是C编程的初学者,我正在研究链接列表。 我正在尝试创建一个链接列表,它将以正确的顺序显示字母。 该程序使用户能够按字母顺序在列 ...

7 函数指针在C中使用typedef

这个问题已经在这里有了答案: C函数指针语法 4个答案 typedef函数指针类型 2的答案 如果我想为某种类型声明一个typedef ,那么在本例中,我将采用这样的语法: 但是,当我想为函数创建typedef ,我期望以下语法成为一种: ...

2017-07-19 12:05:27 3 206   c
9 在 C 中使用 typedef 和指针来实现堆栈

我在编译这段代码时遇到了问题,因为我不知道如何使用 typedef(但我们必须这样做)。 我的方法 push 有 item *elem 作为输入,但 top -&gt; info = *elem 不起作用。 这是我的代码: ...

2015-11-18 18:12:17 1 229   c/ stack
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM