打印引用类

时间:2016-03-14 05:14:48

标签: c++ c pointers java-native-interface

代码摘要:

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

无论如何我得到错误的#34; Camera *"进入Test1.cpp。

我是CPP的新手。这是通过另一堂课的完美方式吗?打印它的指针值?

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);   

2 个答案:

答案 0 :(得分:1)

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

你需要像这样传递:

  

(Test1 *) - &gt; captureImage(cameraClient);

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

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

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

Camera * cameraClient= new Camera;  

实例化Camera&amp; amp;如果Test1类已经实例化,则将其传递给CaptureImage。

答案 1 :(得分:1)

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

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

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

Test1Ptr->captureImage(cameraClientPtr);

Test1Obj.captureImage(&cameraClientObj);