名前空間は、名前の競合を避けるために、
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 { ...}; //使用这种方式把父类拿过来用