Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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++; < P> >我想知道如何在C++中构造指向新创建对象的指针?_C++_Object_Pointers_Constructor - Fatal编程技术网

在构造函数C++; < P> >我想知道如何在C++中构造指向新创建对象的指针?

在构造函数C++; < P> >我想知道如何在C++中构造指向新创建对象的指针?,c++,object,pointers,constructor,C++,Object,Pointers,Constructor,班级的地址是什么 class MyClass { public: }; class MyClass2 { public: //I need a pointer to the created object MyClass2 *pObjectName; //Constructor MyClass2() { pObjectName = &//I have no clue how to get the adress of

班级的地址是什么

class MyClass
{
    public:
};

class MyClass2
{
    public:
    //I need a pointer to the created object
    MyClass2 *pObjectName;

    //Constructor
    MyClass2()
    {
        pObjectName = &//I have no clue how to get the adress of the (not yet) created object.
    }
};

int main()
{
    //The way it works
    //Makes Object
    MyClass *pObject;
    MyClass Object;
    //pObject points to Object
    pObject = &Object;
    //Prints adress of Object
    printf("%p", pObject);


    //The way I would like to see it work
    MyClass2 Object2;
    //Prints adress of Object
    printf("%p", Object2.pObjectName);

}
它将是:

MyClass2()
{
    pObjectName = this;
}
但你不需要这样做。
指针隐式传递给类的每个非静态成员函数。

它将是:

MyClass2()
{
    pObjectName = this;
}

但你不需要这样做。
指针隐式传递给类的每个非静态成员函数。

您需要使用
,例如:

MyClass2()
{
  pObjectName = this;
}

您需要使用此,例如:

MyClass2()
{
  pObjectName = this;
}

在类内部,您可以使用
this
访问指向对象的指针。该指针在每个实例方法中定义并隐式传递。因此,您实际上不需要将其存储到另一个变量中。

在类中,您可以使用
this
访问指向对象的指针。该指针在每个实例方法中定义并隐式传递。因此,您实际上不需要将其存储到另一个变量中。

为什么不说:

MyClass object;
printf("%p", &object);
为什么不说:

MyClass object;
printf("%p", &object);

因为我不会将其仅用于printf函数;)。不过非常感谢!我不明白您想要实现什么。因为我不会将它仅用于printf函数;)。不过非常感谢!我不明白你想要实现什么。非常感谢,这正是我想要的@克里斯蒂安:很高兴这有帮助。如果这解决了你的问题,请考虑将答案标记为“接受”(或任何其他正确答案):“谢谢,我正在寻找的正是!”克里斯蒂安:很高兴这有帮助。如果这解决了你的问题,请考虑将答案标记为接受(或任何其他正确答案):