打印引用指针地址 class

print pointer address of reference class

代码摘要:

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

无论如何,我将 "Camera*" 错误转换为 Test1.cpp 。

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

TestCamera.cpp

Camera * cameraClient=static_cast<Camera *>();

    (Test1 *)->captureImage(*cameraClient*);

Test1.cpp

int Test1::captureImage(const Camera*  Cam) {

    jint lResult;
    jlong ad = (jlong)&Cam;
        LOGI("Test1: pointer : APP: %ld",ad);   

我没有得到你的全部代码,只是提示你传递错误的方式..

你需要这样通过:

(Test1 *)->captureImage(cameraClient);

但是,我怀疑你没有为 cameraClient 分配内存。

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

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

Camera * cameraClient= new Camera;  

如果 Test1 class 已经实例化,则实例化 class Camera & 然后将其传递给 CaptureImage..

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

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

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

Test1Ptr->captureImage(cameraClientPtr);

Test1Obj.captureImage(&cameraClientObj);