编程语言
首页 > 编程语言> > 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;
}

标签:int,age,namespace,C++,Person,qdu,func,命名,声明
来源: https://blog.csdn.net/qq_42815188/article/details/122723279