1) static member functions do not have this pointer.
For example following program fails in compilation with error “`this’ is unavailable for static member functions “
2) A static member function cannot be virtual (See this G-Fact)
3) Member function declarations with the same name and the name parameter-type-list cannot be overloaded if any of them is a static member function declaration.
For example, following program fails in compilation with error “‘void Test::fun()’ and `static void Test::fun()’ cannot be overloaded ”
4) A static member function can not be declared const, volatile, or const volatile.
For example, following program fails in compilation with error “static member function `static void Test::fun()’ cannot have `const’ method qualifier ”
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Count the number of objects using Static member function
- Interesting Facts about C++
- C++ bitset interesting facts
- Interesting facts about switch statement in C
- Some Interesting facts about default arguments in C++
- Interesting facts about data-types and modifiers in C/C++
- Const member functions in C++
- Can static functions be virtual in C++?
- Understanding "static" in "public static void main" in Java
- Difference between static and non-static method in Java
- Difference between static and non-static variables in Java
- Internal static variable vs. External static variable with Examples in C
- Can C++ reference member be declared without being initialized with declaration?
- Can we access private data members of a class without using a member or a friend function?
- C++ programming and STL facts