You will never see class.method() or class->method() in C++. What you will see is object.method(), obj_ptr->method() or class::method(). When you make an object of a class, you use the . operator, when refering to a pointer to an object, you use -> and when calling a static method directly without making an object, you use ::. If you have a class a_class like below, then:
class a_class { public: void a_method() { std::cout<<"Hello world"<<std::endl; } static void a_static_method() { std::cout<<"Goodbye world"<<endl; } } int main() { a_class a_object = a_class(); a_class* a_pointer = new a_class(); a_object.a_method(); //prints "Hello world" a_object->a_method(); //error a_object::a_method(); //error a_pointer.a_method(); //error a_pointer->a_method(); //prints "Hello world" a_pointer::a_method(); //error *a_pointer.a_method(); //prints "Hello world" *a_pointer->a_method(); //error *a_pointer::a_method(); //error a_class.a_method(); //error a_class->a_method(); //error a_class::a_method(); //error because a_method is not static a_class.a_static_method(); //error a_class->a_static_method(); //error a_class::a_static_method(); //prints "Goodbye world" }
classin either case?