c++ 中解决两个类的同名问题

最近写程序发现一个问题,如果两个头文件中定义的类名称一样,主函数如果又同时包含这两个头文件,那么就会出现编译错误,最简单的办法就是修改其中的一个类名,但有还可以利用namespace来解决:

如有头文件one.h

#pragma once
#ifndef ONE_H_
#define ONE_H_
namespace test1
{
class exmple
{
public:
	int add(int a, int b);
};
}
#endif // !ONE_H_

one.cpp

#include"one.h"
int test1::exmple::add(int a, int b)
{
	int c = a + b;
	return c;
}

two.h

#pragma once
#ifndef TWO_H_
#define TWO_H_
namespace test2
{
class exmple
{
public:
	int add(int a, int b);
};
};
#endif // 

two.cpp

#include"two.h"
int test2::exmple::add(int a, int b)
{
	int c = a * b;
	return c;
}

main.cpp

#pragma once
#include<iostream>
#include"one.h"
#include"two.h"
using namespace std;
void main()
{
	test1::exmple k;
	test2::exmple kk;
	cout<<k.add(10, 10)<<endl;
	cout << kk.add(10, 10) << endl;
}

上面只是举了个简单的例子,便于说明问题,重点在理解namespace 的用法!

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值