前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++-面向对象(三)

C++-面向对象(三)

作者头像
cwl_java
发布2019-10-28 10:41:01
2890
发布2019-10-28 10:41:01
举报
文章被收录于专栏:cwl_Javacwl_Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102751068

strcpy过期问题解决
在这里插入图片描述
在这里插入图片描述
声明和实现分离
代码语言:javascript
复制
#include <iostream>
#include "Person.h"

using namespace std;

int main() {

	{
		Person person;
		person.setAge(20);
		cout << person.getAge() << endl; 
	}
	
	getchar();
	return 0;
}
代码语言:javascript
复制
#include "Person.h"
#include <iostream>
using namespace std;

// ::是域运算符
// 实现 .cpp 源文件
Person::Person() {
	cout << "Person()" << endl;
}

Person::~Person() {
	cout << "~Person()" << endl;
}

void Person::setAge(int age) {
	this->m_age = age;
}

int Person::getAge() {
	return this->m_age;
}
代码语言:javascript
复制
#pragma once

// 声明 .h 头文件
class Person {
	int m_age;
public:
	Person();
	~Person();
	void setAge(int age);
	int getAge();
};
命名空间
  • 命名空间可以用来避免命名冲突
代码语言:javascript
复制
#include "Car.h"
namespace MJ {
	Car::Car() {
	}


	Car::~Car() {
	}
}
代码语言:javascript
复制
#pragma once
namespace MJ {
	class Car {
	public:
		Car();
		~Car();
	};
}
代码语言:javascript
复制
#include <iostream>
#include "Car.h"
#include "Person.h"
//using namespace MJ;
using namespace std;

//void test() {
//	cout << "test()" << endl;
//}
//
//namespace FX {
//	int g_no;
//
//	class Person {
//	public:
//		int m_age;
//	};
//
//	void test() {
//		cout << "FX::test()" << endl;
//	}
//}
//
//namespace MJ {
//	int g_no;
//
//	class Person {
//	public:
//		int m_height;
//	};
//
//	void test() {
//		cout << "MJ::test()" << endl;
//	}
//}
//
//void test1() {
//	FX::g_no = 1;
//	MJ::g_no = 2;
//
//	FX::Person *p1 = new FX::Person();
//	p1->m_age = 10;
//
//	MJ::Person *p2 = new MJ::Person();
//	p2->m_height = 180;
//
//	test();
//	FX::test();
//	MJ::test();
//}

//namespace MJ {
//	int g_no;
//
//	class Person {
//	public:
//		int m_height;
//	};
//
//	void test() {
//		cout << "MJ::test()" << endl;
//	}
//}

void test2() {
	/*using namespace MJ;
	g_no = 10;
	Person person;
	test();*/

	/*using MJ::g_no;
	using MJ::Person;
	g_no = 10;
	Person person;*/
}

namespace MJ {
	namespace SS {
		int g_no;
		class Person {

		};

		void test() {

		}
	}

	void test() {

	}
}

void test() {

}

void test3() {
	test();
	// 默认的命名空间,没有名字
	::test();

	::MJ::SS::g_no = 30;

	MJ::SS::g_no = 20;

	using namespace MJ;
	SS::g_no = 30;

	using namespace MJ::SS;
	g_no = 10;
}

int main() {
	MJ::Car car;
	MJ::Person person;

	getchar();
	return 0;
}
代码语言:javascript
复制
#include "Person.h"

namespace MJ {
	Person::Person() {
	}


	Person::~Person() {
	}
}
代码语言:javascript
复制
#pragma once
namespace MJ {
	class Person {
	public:
		Person();
		~Person();
	};
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • strcpy过期问题解决
  • 声明和实现分离
  • 命名空间
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档