您的位置:首页 > 编程语言 > C语言/C++

C++嵌套类的学习

2013-05-16 11:12 309 查看
  嵌套类,这里指的是语法上的嵌套类,实际上是平行的关系。

     外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现且同时可以对用户隐藏该底层实现。

# include <iostream> 
using namespace std; 
 
class Outer 

    class Inner 
    { 
    public: 
        void Fun() 
        { 
            cout << "Inner::Fun..." << endl; 
        } 
    }; 
public: 
    Inner obj_; 
 
    void Fun() 
    { 
        cout <<"Outer::Fun..."<< endl; 
        obj_.Fun(); 
    } 
 
}; 
//嵌套类为外围类提供服务 
//外围类的使用到了嵌套类的实现,调用了嵌套类的方法 
int main(void) 

    Outer o; 
    o.Fun(); 
 
    return 0; 


     运行结果:





 

嵌套类中的成员函数可以在它的类体外定义

 

从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能

在外围类中使用。如果在外围类的作用域使用该域名时,需要

加名字限定。

嵌套类的成员函数对外围类的成员没有访问权,反之亦然。

嵌套类仅仅只是语法上的嵌入,平行的关系,外部也可以使用对象。

# include <iostream> 
using namespace std; 
 
class Outer 

public: //默认是私有,这里声明为公有,main函数才能    Outer::Inner   i;  
    class Inner 
    { 
      public: 
             void Fun(); 
                 //{ 
                 // cout << "Inner::Fun..." << endl; 
                 //}     
    }; 
public: 
      Inner obj_; 
      void Fun() 
      { 
         cout<< "Outer::Fun..." << endl; 
         obj_.Fun(); 
       } 
 
}; 
//嵌套类中的成员函数可以在它的类体外定义 
void Outer::Inner::Fun() 

    cout << "Inner::Fun..." << endl;     

 
int main(void) 

    //如果是私有的则不行,如果是公有的则可以 
    Outer::Inner  i;  
    i.Fun(); 
 
    return 0; 


运行结果:





 

本文出自 “_Liang_Happy_Life__Dream” 博客,请务必保留此出处http://liam2199.blog.51cto.com/2879872/1172203
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: