Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C++
Expertise: Intermediate
Sep 15, 2000

Accessing a Class-Internal Type

Here's a common error: you define a class-internal type, say an enum or typedef, and then try to use it as the return type of that class's member function:

 
class A
{
public:
 enum sizes {small, medium, large};
 sizes default_size() const{ return medium;}
};

Up until now, all is fine. However, at a later stage you decide to move the body of default_size() outside the class:

 
sizes A::default_size() const
{ 
 return medium;
}

All of a sudden, the compiler is moaning and bitching at you that 'sizes' is an unknown type. The problem is that outside the scope of class, you must use a qualified name to refer to an internal type, as follows:

 
A::sizes A::default_size() const
{ 
  return medium;
}

remember that the compiler recognizes the non-qualified names defined within a class only within that class's scope.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date