Calling an object from another class
-
Hi guys,
Thank you for your so fast answer !
I tried to understand your solutions but, I'm sorry I'm novice and I really dont understand what I have to do and moreover where I have to put it : .cpp ? .h ?
Can you explain me more precisely please... my level is really low, I'm learning basis, vocabulary etc.Thanks for your help and your patience
-
@Suji
To explain what @Charby mentioned:- provide a getter method in the Camera class:
//in camera.h class Camera { //... public: QCamera* get(); //... } //in camera.cpp QCamera *Camera::get() { return m_camera; }
- in parameters.cpp
#include "camera.h" //... Camera *cam = new Camera; QCamera *m_camera = cam->get();
You still have to initialize the pointer in camera.cpp.
(@Charby correct me if I misinterpreded your post :))
-
Hi guys,
Thank you for your so fast answer !
I tried to understand your solutions but, I'm sorry I'm novice and I really dont understand what I have to do and moreover where I have to put it : .cpp ? .h ?
Can you explain me more precisely please... my level is really low, I'm learning basis, vocabulary etc.Thanks for your help and your patience
It is hard to answer without knowing how your Camera and Parameters are created and where the QCamera member of Camera is initialized. This is one way :
Modify you Camera class adding a getter
class Camera : public QMainWindow { public: Camera(); ~Camera(); QCamera* getCamera(){ return m_camera;} public slots: private: QCamera *m_camera; }
Modify your Parameters class so that it can be constructed using a QCamera*
class Parameters : public QMainWindow { public: Parameters(QCamera* cam){ imageProcessing = cam->m_camera->imageProcessing(); } ~Parameters(); private: QCameraImageProcessing *imageProcessing; };
and here I consider that your Camera and Parameters instances can be created on the stack and that the QCamera is initialized in the Camera constructor :
Camera* cam = new Camera(); Parameters* param = new Parameters( cam->getCamera() ); ... delete param, delete cam;
-
Thanks again @Charby and @the_ .
Why it is so complicated ? :D
I had the "camera.h" in my Parameters.cpp, so why he just dont finds "m_camera" in Parameters.cpp ?
//Parameters.cpp imageProcessing = m_camera->imageProcessing();
like he finds it in Camera.cpp when I initialize a new QCamera ?
QCamera *m_camera
Moreover, compiler dont finds "m_camera" here :
class Parameters : public QMainWindow { public: Parameters(QCamera* cam){ imageProcessing = cam->m_camera->imageProcessing(); } ~Parameters(); private: QCameraImageProcessing *imageProcessing; };
even if i followed all your steps guys...
I know it is hard for you to help me, but my code is not in English, then if i post it all, it will not help you, in my opinion.
Maybe it can ?I don't like to annoy you with my so bad level, so i think I will try to find alone... Your answer are clear, but I don't understand why it is so complicated to do something simple ! :D
-
Thanks again @Charby and @the_ .
Why it is so complicated ? :D
I had the "camera.h" in my Parameters.cpp, so why he just dont finds "m_camera" in Parameters.cpp ?
//Parameters.cpp imageProcessing = m_camera->imageProcessing();
like he finds it in Camera.cpp when I initialize a new QCamera ?
QCamera *m_camera
Moreover, compiler dont finds "m_camera" here :
class Parameters : public QMainWindow { public: Parameters(QCamera* cam){ imageProcessing = cam->m_camera->imageProcessing(); } ~Parameters(); private: QCameraImageProcessing *imageProcessing; };
even if i followed all your steps guys...
I know it is hard for you to help me, but my code is not in English, then if i post it all, it will not help you, in my opinion.
Maybe it can ?I don't like to annoy you with my so bad level, so i think I will try to find alone... Your answer are clear, but I don't understand why it is so complicated to do something simple ! :D
I dont know your programming skills, but maybe you should start with a quick reading about Classes in C++ :) Try to understand how to access public, private and protected methods and variables.
I hope this link will help a little bit
C++ Classes -
Hi @the_
Yes, you're right, my problem is I learnt alone, so I have a big vocabulary problem, I know how to do things, but not how they're called, I understand the logic, but not the syntax I have to use. :) So thank you for this link, I like this summary !
Actually, my code is able to launch a windows, to obtain the availables cameras in a checklist, when you ckeck one, it is selected and you can open its stream. But now, I created a new windows called "parameters", and i want to pilot my camera's settings from this new window "parameters".
I will work with your solutions guys, thank you.
Have a nice day !
-
Hi @the_
Yes, you're right, my problem is I learnt alone, so I have a big vocabulary problem, I know how to do things, but not how they're called, I understand the logic, but not the syntax I have to use. :) So thank you for this link, I like this summary !
Actually, my code is able to launch a windows, to obtain the availables cameras in a checklist, when you ckeck one, it is selected and you can open its stream. But now, I created a new windows called "parameters", and i want to pilot my camera's settings from this new window "parameters".
I will work with your solutions guys, thank you.
Have a nice day !
@Suji
You don't have a vocabulary problem, you have a problem with understanding the very basics of object-oriented programming and C++ classes.
C++ is a very complex programming language, you can't learn it just by examples. Go to the source: http://mazonka.com/shared/Straustrup4th.pdf
If you come from the world of C (i.e. if you already know C and have programmed in C) then you can go directly to "Part III " in the book, "Abstraction Mechanisms" -
@Suji
You don't have a vocabulary problem, you have a problem with understanding the very basics of object-oriented programming and C++ classes.
C++ is a very complex programming language, you can't learn it just by examples. Go to the source: http://mazonka.com/shared/Straustrup4th.pdf
If you come from the world of C (i.e. if you already know C and have programmed in C) then you can go directly to "Part III " in the book, "Abstraction Mechanisms"Hi @gyll,
You're right, the problem is I started programming for 2 months. I knew the if, for loop etc from Matlab, but didn't know the "real" programming 2 months ago. I did C++ open classroom courses and bought a book about C.
And as you said :
"you can't learn it just by examples."I'm actually learning from examples from here and there but it's a bad way for understanding the basis.
Thanks for this source, I will study this.
Have a nice day !
-
Hi @gyll,
You're right, the problem is I started programming for 2 months. I knew the if, for loop etc from Matlab, but didn't know the "real" programming 2 months ago. I did C++ open classroom courses and bought a book about C.
And as you said :
"you can't learn it just by examples."I'm actually learning from examples from here and there but it's a bad way for understanding the basis.
Thanks for this source, I will study this.
Have a nice day !