Solved Error unknown typ name 'DS18B20'
-
This post is deleted! -
@mrjj
yeah but i dont write NUM = 100.
I write c.NUM = 100.i write:
class TEST{ int NUM = 0; } MainWindow{ TEST c; c.NUM = 100; } CheckTemperature { float example; TEST c; example = c.NUM; //example still 0 }
-
@AlexKrammer
Yes and then its ok. then you update c.num but NOT
the NUM outside.
Its 100% the same with your SetTemperature/ReadTemperature
in MainWin and those in C. -
@mrjj
i dont want to update NUM outside..
look one post above. I edited it -
CheckTemperature { float example; TEST c; example = c.NUM; //example still 0 }
Yes as you make a local TEST c variable
so if you did if you did c.NUM=100
somewhere else its not the same TEST instance.So TEST c; should be a member if you want to set its NUM outside of CheckTemperature
then it works.
-
@mrjj
yes i did it?
i created a object of Test in MainWindow
then i put c.NUM = 100;after that i created a object of Test in CheckTemperature too
but c.NUM dont have 100. Its still have 0. -
@AlexKrammer So, you create two instances of Test, change one of them and expect the other one to have the same change? How? By magic? Maybe I don't get something as the thread is already quite long...
Test a; Test b; a.NUM = 100; // Why should b.NUM be 100 now?!
-
@jsulm
where do i create two instaces of Test? I only create a Object of TEST with c. change the Variable NUM and try to get c.NUM in a other Classclass TEST{
int NUM = 0;
}MainWindow{
TEST c;
c.NUM = 100;
}CheckTemperature
{
float example;
TEST c;
example = c.NUM;
//example still 0
}Or do i change the value of the variable in the object TEST c (c.NUM) i created? Not the Variable in the class TEST
-
@AlexKrammer said in Error unknown typ name 'DS18B20':
where do i create two instaces of Test?
In the code you just posted (hint: instance is the same thing as object):
MainWindow{ TEST c; // First instance c.NUM = 100; } CheckTemperature { float example; TEST c; // Second instance, c here is NOT the same as in MainWindow! example = c.NUM; //example still 0 }
-
@jsulm said in Error unknown typ name 'DS18B20':
TEST c; // First instance
This has to go in .h , in the MainWindow class and then
TEST c; // Second instance, has to be removed then
its the same and it should work. -
@mrjj
If i create in MainWindow.h a instance called TEST c;That instance won't work in class CheckTemperature. Will it?
-
@AlexKrammer
No as its 2 different instances. one in MainWin and one in CheckTemperature.
They are not the same. -
@mrjj
And is there a posibility to use a variable of a class in 2 other classes -
@AlexKrammer
Yes if you use a pointer or reference then it will point back to the original variable.like
int Num=0; the actual one
class Test() {
int &NumRef;
void Test( int MyNum ) : NumRef(MyNum) {}
}then when you create the instance
Test MyTest(Num);
Then it points to the actual one and will always have the same value.
But often its not the best idea and can be solved other way like give it directly when you want to
other classes to use the data.class Test() {
int DoSomething(int NumTouse);
}Test c;
int result = c.DoSomething(Num); -
@mrjj well thank you very much. My problem has been fixed and about this problem i'm going to read something on a c++ article.
Thanks for your time. -
@AlexKrammer
Good to hear and you are welcome.
Its a good idea to read up on c++ as Qt uses it a lot and
its best to have good understanding on some of the concepts as not to feel really uphill:)