代码摘要:
需要将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);
答案 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);