c++ - doubts regarding usage of :: (scope_resolution_operator) -
when studying book on c++, came across this. if declare class,
class student {public: void func(int v1,int v2) { //some code } //some members. }; and use function same name out of class (non-member function) like,
void func(int x,inty) and if wish call non-member function in member function of above declared class, syntax be,
//inside member function... ::func(x,y); } correct me if wrong.otherwise, assuming wrote
using namespace std; in beginning of program, below code equivalent previous one?
//inside member function std::func(x,y); } and, answer change if use different namespace other std?? ie, provided use,
using namespace abc are following declarations
abc::func(x,y) and,
::func(x,y) absolutely equivalent under conditions or change under specific conditions??
thank you.
in beginning of program, below code equivalent previous one?
//inside member function std::func(x,y);
no isn't. because preform qualified name lookup. means specify in namespace func defined. std::func, if exists, still belongs the std namespace, not global one.
a using namespace directive makes identifiers available unqualified name lookup, it's compiler figure out. point quite intricate, know, it's reason namespaces can considered useful.
Comments
Post a Comment