No you can't, a (2) is hidden.
Ref: 3.3.7/1
A name can be hidden by an explicit
declaration of that same name in a
nested declarative region or derived
class (10.2).
Ref: 3.4.3/1
The name of a class or namespace
member can be referred to after the ::
scope resolution operator (5.1)
applied to a nested-name-specifier
that nominates its class or namespace.
During the lookup for a name preceding
the :: scope resolution operator,
object, function, and enumerator names
are ignored. If the name found is not
a class-name (clause 9) or
namespace-name (7.3.1), the program is
ill-formed.