C++ 如何创建对数组成员的引用
如何引用类中数组的成员 比如:C++ 如何创建对数组成员的引用,c++,class,C++,Class,如何引用类中数组的成员 比如: class ASD{ int bb[4]; int& up = bb[0] // <- error need to const int& down= bb[1] // <- samething int& right= bb[2] // <- samething int& left= bb[3] // <- samething }; class ASD{ in
class ASD{
int bb[4];
int& up = bb[0] // <- error need to const
int& down= bb[1] // <- samething
int& right= bb[2] // <- samething
int& left= bb[3] // <- samething
};
class ASD{
int up;
int down;
int right;
in& left;
int*& bb = &up; // <- error
};
您的代码按预期工作。好。。。与您的主要问题无关的小调整:
代码>
ASD ASD()代码>被解释为一个函数。使用ASD-ASD
或更好的ASD ASD{}代码>:
但我强烈建议使用较新的标准(好吧,它不再那么新了)。添加了缺少的
代码>s,它编译为clean for me g++5.1.0请注意,您在尝试复制和分配ASD
的实例时会遇到进一步的问题error need to const
不是任何编译器都会给出的真正错误。逐字逐句地张贴真正的错误。此外,您正在使用哪个编译器以及您传递给它的开关;你可能不告诉它使用一个新的足够的C++版本。您应该在问题中添加一个和错误消息。如果您这样做了(并修复了丢失的;
),您可能会意识到没有:P@underscore_d为什么?你敢问我为什么要发布有用的信息,让读者除了猜测你的问题之外,还能做任何事情吗?
class ASD{
int up;
int down;
int right;
in& left;
int*& bb = &up; // <- error
};
ASD asd;
asd.bb[1] = 20;// wich is equal to asd.down = 20
class ASD
{
public:
int bb[4];
int& up = bb[0];
int& down= bb[1];
int& right= bb[2];
int& left= bb[3];
};
int main()
{
ASD asd{};
asd.bb[1] = 5;
for(int i = 0; i < 4 ; i++){
asd.bb[i] =i;
}
asd.left = 50;
return 0;
}
class ASD
{
public:
int bb[4];
int& up = bb[0];
int& down;
int& right;
int& left;
ASD()
: up(bb[0]),
down(bb[1]),
right(bb[2]),
left(bb[3])
{}
};
int main()
{
ASD asd;
asd.bb[1] = 5;
for(int i = 0; i < 4 ; i++){
asd.bb[i] =i;
}
asd.left = 50;
}