Person.h
#pragma once class Person { private: int m_age; public: void setAge(int age); int getAge(); Person(); ~Person(); };
Person.cpp
#include "Person.h" void Person::setAge(int age) { m_age = age; } int Person::getAge() { return m_age; } Person::Person() { m_age = 0; } Person::~Person() { }
main.cpp
#include <iostream> #include "Person.h" using namespace std; int main() { Person person; person.setAge(10); cout << person.getAge() << endl; // 10 getchar(); return 0; }
命名空间可以用来避免命名冲突。
命名空间不影响内存布局。
#include <iostream> using namespace std; namespace qdu { int g_age; void func() { cout << "qdu::func()" << endl; } class Person { int m_age; int m_money; }; } void func() { cout << "func()" << endl; } int main() { qdu::g_age = 10; qdu::func(); // 输出qdu::func() qdu::Person person; func(); // 输出func() getchar(); return 0; }
有个默认的全局命名空间,我们创建的命名空间默认都嵌套在它里面。
#include <iostream> using namespace std; namespace qdu { int g_age; void func() { cout << "qdu::func()" << endl; } class Person { int m_age; int m_money; }; } void func() { cout << "func()" << endl; } int main() { using namespace qdu; g_age = 10; qdu::func(); // 输出qdu::func() Person person; ::func(); // 输出func() getchar(); return 0; }