C++ 我是否可以将指针作为指向类的指针传递,这样我就可以在类中使用分配给指针的任何内容?
我的程序中有两个相同类的对象。我将焦点对象设置为第三个变量,即指针。因此,我可以使用第三个指针变量切换聚焦对象,并且可以访问代码的每个部分,而不必知道哪个对象是聚焦的 如下所示:C++ 我是否可以将指针作为指向类的指针传递,这样我就可以在类中使用分配给指针的任何内容?,c++,pointers,C++,Pointers,我的程序中有两个相同类的对象。我将焦点对象设置为第三个变量,即指针。因此,我可以使用第三个指针变量切换聚焦对象,并且可以访问代码的每个部分,而不必知道哪个对象是聚焦的 如下所示: class MainClass { OtherClass otherClass; Field fieldA; Field fieldB; Field *focusedField = &fieldA; void someMethod(){ otherC
class MainClass
{
OtherClass otherClass;
Field fieldA;
Field fieldB;
Field *focusedField = &fieldA;
void someMethod(){
otherClass.othermethod();
focusedField = &fieldB;
otherClass.othermethod();
}
void MainClass()
: otherClass(focusedField);
{
}
}
但现在我想在另一个类中使用此指针,如下所示:
class OtherClass{
OtherClass(Field *f){
focusedField = f;
}
Field *focusedField;
void otherMethod(){
std::cout << focusedField->getState() << std::endl;
}
}
class-OtherClass{
其他类别(字段*f){
聚焦场=f;
}
字段*焦点字段;
void otherMethod(){
std::cout getState()若要展开,如果要“跟踪”一个值,则存储一个指针或对该值的引用。如果该值本身是指针,则仍然如此。为确保常量正确性,应声明OtherClass
成员(和构造函数参数)作为字段*常量&
,因为它不需要更改聚焦的字段
。如果它也不需要写入聚焦的字段
,请使用常量字段*常量&
值得注意的是,作为成员(因为它允许赋值具有通常的语义)和构造函数参数(宣布临时变量不适合作为参数),使用指向指针的指针可能会更好。它仍然具有相同的共享目的,并允许对const
位置进行相同的选择。在OtherClass
中使用Field*&
,哇,好的,谢谢……它现在工作了,@J.S。