Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我是否可以将指针作为指向类的指针传递,这样我就可以在类中使用分配给指针的任何内容?_C++_Pointers - Fatal编程技术网

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。