Access modifiers in C++ allow restricting access to classes, members, and inherited members. The three main access modifiers are public, private, and protected. Public members can be accessed anywhere, private members only within the class, and protected members within the class and subclasses. The scope resolution operator :: is used to access members when names are hidden, define functions outside classes, access static members, and resolve multiple inheritance conflicts.