member function [value()] of dimensioned<Type> class
I tried to understand the code of OpenFOAM, specifically simplefoam, but I met a small obstacle in the usage of value() function which is a memeber function of dimensioned<Type> class.
In the constructor of Time class, setControls() is executed and setControls calls the function of setTime(starTime_, 0). In the function of setTime, value()=newTime is not clear. Let me take a similar example. #include <iostream> using namespace std; template<class Type> class dimensioned { Type value_; public: Type& value() { return value_;} }; int main() { int Rvalue=1; dimensioned<int> myType; myType.value()=Rvalue; return 0; } In the above examle, the member function of value() cannot be used without class name. But in the function of setTime it was called without class name. I am looking forward to your kind reply because I am a beginner of C++. |
Hi,
I think value() can be used in this way, because it is a member of the class itself, even it is not defined in Time explicitly. But this class seems to be somehow derived form dimensionedType and therefore it is known. It just the same as setControls() is used. (without object because it should work on object itself). Regards, Stefan |
Re_questions
Quote:
My limited knowledge of C++ does not makes me fully understand your reply yet. It is clear that both setControls() and setTime() are used without instance because they are defined inside Time class. But value() is defined in dimensioned<Type> class (not in Time class), so I think that value() could be called in Time class with instance as following dimensioned<scalar> myType; myType.value(); Thank you for your reply in advance... |
All times are GMT -4. The time now is 13:36. |