您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> C++名称空间问题

C++名称空间问题(2/2)

来源:网络整理     时间:2016/9/6 0:24:17     关键词:

关于网友提出的“ C++名称空间问题”问题疑问,本网通过在网上对“ C++名称空间问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: C++名称空间问题
解决方案10:

.cpp 中,名空间内定义的函数,类的成员函数,外部变量,类的静态变量定义
也都要放在 名空间内部
名空间 一个最突出的特点是,和定义的文件无关
同一名字的名空间,
1)在同一头文件实现文件中,可以有多处定义不同的内容
他们都是同一 名空间。
2)同一名字的名空间 ,可以在多个 头文件,实现文件中,定义不同的内容
----------------------------------
相同内容可能,会有重复定义问题,
这个问题需要细细讨论,不是一句话的问题
-----------------------------------
举例:
标准库 的 std 名空间,是在不同头文件内定义的。

解决方案11:

#ifndef SALES_H
#define SALES_H
namespace SALES
{
    const int QUARTERS=4;
struct Sales
{
    double sales[QUARTERS];
double average;
double max;
double min;
};
void setSales(Sales &s,const double ar[],int n);
void setSales(Sales &s);
void showSales(const Sales &s);
};
}
#endif
//sales.cpp
namespace SALES {
#include 
#include "student.h"//在这儿声明using namespace SALES;会出错
using std::cout;
using std::endl;
void  Sales::setSales(Sales &s,const double ar[],int n)
{
    int i;
double sum=0;
s.max=ar[0];s.min=ar[0];
for(i=0;i<>
{
s.sales[i]=ar[i];
sum+=ar[i];
    if(s.max<>
s.max=ar[i];
if(s.min>ar[i])
s.min=ar[i];
}
s.average=sum/i;
}
void  Sales::setSales(Sales &s)
{
    cout<<"Enter "<<>
double ar[QUARTERS];
double sum=0;
int i;
for(i=0;i<>
{
    std::cin>>ar[i];
s.sales[i]=ar[i];
sum+=ar[i];
}
s.average=sum/i;
s.max=s.min=ar[0];
for(i=0;i<>
{
    if(s.max<>
s.max=ar[i];
if(s.min>ar[i])
s.min=ar[i];
}
}
void  Sales::showSales(const Sales &s)
{
for(int i=0;i<>
{
    cout<<"Sales: "<<><>
}
 cout<<"Average: "<<><>
 cout<<"Max: "<<><>
 cout<<"Min: "<<><>
}

//main.cpp
#include "student.h"
#include 
using namespace SALES;
int main()
{
    Sales s1,s2;
double ar[QUARTERS]={1.1,2.2,3.3,4.4};
setSales(s1,ar,QUARTERS);
showSales(s1);
setSales(s2);
showSales(s2);
return 0;
}

以上介绍了“ C++名称空间问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3761894_2.html

相关图片

相关文章