打印引用类的指针地址

print pointer address of reference class

本文关键字:指针 地址 引用 打印      更新时间:2023-10-16

代码摘要:

需要将相机的对象从测试相机.cpp传递到测试1.cpp。我在TestCamera中创建了一个类对象.cpp现在,我想把它传递给 Test1,所以我把它传递给另一个对象。

无论如何,我在Test1中收到"相机*"错误.cpp。

我是CPP的新手。这是传递另一个类并打印其指针值的完美方式吗?

测试相机.cpp

Camera * cameraClient=static_cast<Camera *>();
    (Test1 *)->captureImage(*cameraClient*);

测试1.cpp

int Test1::captureImage(const Camera*  Cam) {
    jint lResult;
    jlong ad = (jlong)&Cam;
        LOGI("Test1: pointer : APP: %ld",ad);   

我没有得到你的整个代码,而只是给你暗示你传递错误的方式。

你需要像这样传递:

(Test1 *)->captureImage(cameraClient);

但是,我怀疑,因为您没有将内存分配给相机客户端。

以下是额外的建议,这不是您的问题:

在C++中,当您想要动态创建类的对象时,您需要使用 new 分配内存,如下所示:

Camera * cameraClient= new Camera;  

哪个实例化相机类,然后如果Test1类已经实例化,则将其传递给CaptureImage。

TestCamera.cpp中的代码片段不正确,当您说正在创建一个对象时,您需要使用new运算符或定义一个对象,如下所示

Camera * cameraClientPtr=new Camera; // For default constructor
Camera cameraClientObj;

调用方法的方式captureImage也不对。如果您使用上述任何一种方式创建了指针Test1则调用该方法如下,

Test1Ptr->captureImage(cameraClientPtr);
Test1Obj.captureImage(&cameraClientObj);