C++类的声明和实现分离、命名空间

类的声明和实现分离

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;
}
上一篇:SpringDataJpa根据多个id物品清单id查询房源编号


下一篇:C++模板笔记七:类模板成员函数类外实现;