国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

關(guān)于C++一些特性的探究

2020-05-23 14:02:54
字體:
供稿:網(wǎng)友
下面小編就為大家?guī)硪黄P(guān)于C++一些特性的探究。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
 

在學(xué)習(xí)c++的過程中,也曾經(jīng)學(xué)習(xí)java,就發(fā)現(xiàn)java有類的嵌套,而看的c++的書,從來沒有哪個(gè)講c++的類可以嵌套,于是就試了一下,看是否c++可以嵌套類(編譯環(huán)境vc++6.0)

于是有了下面的代碼:

#include <iostream>using namespace std;class A{public:  A(){    cout<<"this a"<<endl;  }  ~A(){cout<<"a dead"<<endl;}  class B  {  public:      B(){cout<<"this b"<<endl;}    ~B(){cout<<"b dead"<<endl;}  };  B b;};class c:public A{};int main(int argc, char * argv[]){  A a;  return 0;}

結(jié)果是正確的,那么看來c++是支持嵌套類的,至少vc++6.0是支持的

那么B類是否可以使用呢?于是有了下面的代碼:

#include <iostream>using namespace std;class A{public:  A(){    cout<<"this a"<<endl;  }  void getA(){cout<<"i am getA()"<<endl;}  ~A(){cout<<"a dead"<<endl;}  class B  {  public:      B(){cout<<"this b"<<endl;}    ~B(){cout<<"b dead"<<endl;}    void getB(){cout<<"i am getB()"<<endl;}      };  B b;};int main(int argc, char * argv[]){  A a;  a.b.getB();    A::B b;    b.getB();  return 0;}

結(jié)果能成功調(diào)用getB()方法,著可以間接證明這個(gè)類正的被正確識(shí)別了,好了,那我們看是否B能繼承別的類呢?于是有了下面的代碼:

#include <iostream>using namespace std;class A{public:  A(){    cout<<"this a"<<endl;  }  void getA(){cout<<"i am getA()"<<endl;}  ~A(){cout<<"a dead"<<endl;}  class B:public A  {  public:      B(){cout<<"this b"<<endl;}    ~B(){cout<<"b dead"<<endl;}    void getB(){cout<<"i am getB()"<<endl;}      };  B b;};int main(int argc, char * argv[]){  A a;  a.b.getB();  A::B b;    b.getD();  return 0;}

好了結(jié)果說A未定義,好吧,那我們從定義一個(gè)類,如下:

#include <iostream>using namespace std;class D{public:  void getD()  {    cout<<"i am getD()"<<endl;  }};class A{public:  A(){    cout<<"this a"<<endl;  }  void getA(){cout<<"i am getA()"<<endl;}  ~A(){cout<<"a dead"<<endl;}  class B:public D  {  public:      B(){cout<<"this b"<<endl;}    ~B(){cout<<"b dead"<<endl;}    void getB(){cout<<"i am getB()"<<endl;}      };  B b;};int main(int argc, char * argv[]){  A a;  a.b.getB();  a.getA();  a.b.getD();  A::B b;  b.getB();  b.getD();  return 0;}

結(jié)果也是正確的,看來類B是可以繼承其他類的,也有那些繼承關(guān)系。

結(jié)論:

我們分析到c++是可以進(jìn)行類嵌套的,并且可以像正常類一樣操作它,除了不能繼承嵌套它的類,目前還沒發(fā)現(xiàn)有其它特性,有興趣的可以驗(yàn)證一下匿名類是否可以在c++被允許。

以上這篇關(guān)于C++一些特性的探究就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邢台县| 连平县| 绥宁县| 曲水县| 庆元县| 株洲市| 塔河县| 江阴市| 德阳市| 定州市| 司法| 唐海县| 襄垣县| 辽源市| 启东市| 阿勒泰市| 乌鲁木齐县| 柳江县| 石阡县| 枣庄市| 南京市| 德令哈市| 碌曲县| 孟津县| 民勤县| 若尔盖县| 金坛市| 乾安县| 肇州县| 大埔县| 古交市| 剑阁县| 县级市| 通化县| 安康市| 武宁县| 聂荣县| 子长县| 开原市| 望江县| 东台市|