微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用“using”而不是“typedef”作为指向类成员变量的指针吗?

如何解决我可以使用“using”而不是“typedef”作为指向类成员变量的指针吗?

#include <iostream>
using namespace std;

struct Pos {
    int x;
    float y;
};

typedef int Pos::* pointer_to_pos_x;
//using pointer_to_pos_x = ???;

int main()
{
    Pos pos;
    pointer_to_pos_x a = &Pos::x;
    pos.*a = 100;
    cout << pos.x << endl;
}

在这种情况下,我可以使用 using 代替 typedef 吗?

我在网上查了一些资料:有人说using可以代替typedef,但是这个怎么代替呢? (任何文档或博客也会有所帮助。)

解决方法

就这样:

using pointer_to_pos_x = int Pos::*;

几乎所有 typedef XXX aaa; 的情况都可以轻松转换为 using aaa = XXX;。您可能还会发现此问答很有用:What is the difference between 'typedef' and 'using' in C++11?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。