名前空間 - 継承 - メンバーのアクセス

名前空間は、名前の競合を避けるために、

namespace MJ{    //定义一个命名空间
    int g_age;    //这是全局变量
    class Person {
        int m_age;
    };
}   

class Person {
    int m_height;
}

MJ::Person person;
MJ::g_age =10;    //使用全局变量

using namespace MJ;    //从这一行开始,下面都使用命名空间的

名前空間はグローバル名前空間にネストされた内部にあり、それは名前がありませんデフォルトで作成しました

::func();    //使用的是全局命名空间下的func()

名前空間の他のプログラミング言語

  • Javaパッケージのパッケージ名(フォルダ)
  • Objective-CのクラスのプレフィックスMJPerson

継承

struct Person {    //有共性的类
    int m_age;
    void run() {}
};

struct Student : Person {    //继承Person,把它所有东西拿过来
    int m_score;
    void study() {}
}; 
  • 学生は、サブクラス、サブクラス、派生クラスであります
  • 人は親クラス、スーパークラス、スーパークラスであります
  • JAVAのObjective-CのクラスベースませんC ++
    、Javaクラスはすべてそれを定義し継承し、java.lang.Objectのは、また、デフォルトの書き込み書かない
    のObjective-Cは、NSObjectの継承されたが

メモリレイアウトオブジェクトの継承した後、

//继承相当于包含一样,拿过来 struct Person{ ...}; struct Student : Person { ...}; struct GoodStudent : Student { ...}; メモリアドレスの前に//親行

メンバーへのアクセス

  • パブリック:パブリック(構造体デフォルト)
  • 保護:内部サブクラスは、現在のクラスは、内部にアクセスすることができます
  • プライベート:プライベート、内部アクセスのみ現在のクラス(クラスデフォルト)
struct Student : private Person { ...};
class Student : public Person { ...};   //使用这种方式把父类拿过来用

おすすめ

転載: www.cnblogs.com/sec875/p/12284139.html