如果我有以下代码:
struct someStruct
{
int x;
int y;
}
class someClass
{
public:
someStruct m_member;
alias m_x = m_member.x; // I am aware alias is not a keyword and even if it was, I cannot assign it a value like this
alias m_y = m_member.y; // I am aware alias is not a keyword and even if it was, I cannot assign it a value like this
}
Run Code Online (Sandbox Code Playgroud)
我是否可以给出别名m_member.x而m_member.y不会产生额外的参考存储成本(与指针相同)?类似于typedef的东西?
cel*_*chk 10
您可以编写内联访问功能:
class someClass
{
public:
someStruct m_member;
int& mx() { return m_member.x; }
int& my() { return m_member.y; }
int const& mx() const { return m_member.x; }
int const& my() const { return m_member.y; }
};
Run Code Online (Sandbox Code Playgroud)
然后您可以按如下方式访问成员:
someClass foo;
foo.mx() = 3;
foo.my() = 2*foo.mx();
Run Code Online (Sandbox Code Playgroud)
它不是完全相同的语法,但接近,一个相当不错的编译器将完全优化内联函数.
| 归档时间: |
|
| 查看次数: |
1771 次 |
| 最近记录: |