So what you're saying is that :: is the equivalent of . in Blitzmax, right?
Not exactly. "::" allows you to access variables from various namespaces / global namespace / etc. If you don't know what a namespace is, it's a feature C++ has that allows you to group variables / functions, and give the group (namespace) a name.
For example, the Ogre engine (a 3D library) has classes for "Vector3", "Quaternion", "Matrix3", and other 3D maths classes. If you happen to be using another library that has an identically named class / global variable / function / etc., it wouldn't compile normally, but Ogre is grouped into an "Ogre" namespace. To access Ogre's class explicitly, you use the "::" operator. For example "Ogre::Vector3". Now so you don't have to type Ogre:: all the time, you can declare "using namespace Ogre;" (and other namespaces) at the top of a file and it will assume scope.
Overall a very useful feature, but different from BlitzMax's "." (which is still a "." in C++ [sometimes "->" though]).