C/C++教程

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

本文主要是介绍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;
}
这篇关于C++类的声明和实现分离、命名空间的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!