C++命名空间与头文件的关系

2023-10-27

C++命名空间与头文件的关系:


(一)添加一个头文件demonamespace.h,内容如下

#ifndef DEMONAMESPACE_H_

#define DEMONAMESPACE_H_

 

class A

{

public:

    int value;

};

 

namespace mynp

{

    A ma;

}

 

#endif /* DEMONAMESPACE_H_ */

 

 

(二)主文件:

 

代码(1):

//只添加了头文件

#include "demonamespace.h"

 

int main() {

//很显然接下来的语句存在错误,解决方法是(1)修改为mynp::ma.value=2;(2)添加命名空间//mynp,即加上一行代码using namespace mynp;(可使用缩写方式using mynp)

    ma.value=2;

    return 0;

}

编译报错提示:'ma' was not declared in this scope

 

代码(2):

//只添加了命名空间

using namespace mynp;

 

int main() {

    ma.value=2;       //很显然,头文件都没有指明,编译器不会知道mynp的来源

    return 0;

}

编译报错提示:

expected nested-name-specifier before 'mynp'

'mynp' has not been declared

'ma' was not declared in this scope

 

//若在主文件中添加一个命名空间mynp,则可以调用mynp中内容,但该mynp不是头文件demonamespace.h中的mynp:

namespace mynp

{

    int i;

}

 

using namespace mynp;

int main() {

    i=2;

    return 0;

}

 

(三)添加另一个头文件secondnamespace.h,内容如下:

#ifndef SECONDNAMESPACE_H_

#define SECONDNAMESPACE_H_

 

class B

{

public:

    int value;

};

 

namespace mynp       //demonamespace.h中的mynp同名

{

    B mb;

}

 

#endif /* SECONDNAMESPACE_H_ */

 

主文件替换为:

#include "demonamespace.h"

#include "secondnamespace.h"

using namespace mynp;       //指明将两个头文件的mynp都添加进来

 

int main() {

    ma.value=2;

    mb.value=3;

    return 0;

}

 

同时将两个头文件中的mynp添加到了主文件

 

****************************************************************

(四)测试,对于#include<iostream>using namespace std;在主文件只添加其一,编译报错提示和(二)相同,经查资料,头文件iostrem中包含了一个namespace std;特别地头文件string中也有一个namespace std;当同时将iostreamstring添到同一文件,是允许的,此时的情形和()相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++命名空间与头文件的关系 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 【开发工具】iOS真机调试抓包工具Charles安装及使用

    支持原创 更多内容请关注 http www china10s com blog p 271 iOS开发过程中 经常需要用真机来测试和后台的网络数据传输 需要一个趁手的抓包工具 在Windows下用的fidder很好用 但是由于它是在 Net
  • 软连接的建立和删除

    想把A文件夹放在B文件夹下面 ln s A B 想取消软连接 rm rf B A 千万不要写成 rm rf B A 这样会删除A里面的数据
  • [2020.5.30]gdb常用总结

    前提 使用的是带debug信息的动态库 1 info 1 types 查看该类型符号是否存在 若存在显示该类型符号相关信息 info types SDL WindowData info types ucontext t 2 function
  • CSS中关于字体样式p标签的属性

    CSS中关于P标签中的样式 1 font family 浏览器在显示字体的时候 依次判断是否支持当前的字体 直到最后的字体系列 font family 宋体 仿宋 sans serif 浏览器若不支持宋体 则用仿宋 若不支持仿宋 则在san
  • Kafka3.0.0版本——消费者(消费者组详细消费流程图解及消费者重要参数)

    目录 一 消费者组详细消费流程图解 二 消费者的重要参数 一 消费者组详细消费流程图解 创建一个消费者网络连接客户端 主要用于与kafka集群进行交互 如下图所示 调用sendFetches发送消费请求 如下图所示 1 Fetch min
  • [C++]宏定义字节对齐#PragmaPack/Pop

    Pragma Pack n 指定对齐的字节数 pragma pop pop 恢复对齐状态 默认4字节对齐 目录 什么是对齐 对齐规则 功能 应用 什么是对齐 现代计算机中内存空间都是按照byte划分的 从理论上讲似乎对任何类型的变量的访问可
  • RFID智能仓储管理系统,更加智能化的仓储管理,你选择对了吗-新导智能

    不同的企业规模 产品类别 有着不同的仓储办理流程和需求 但核心的部分 都还在于进出库在内的库房作业和移库 盘库在内的库存操控作业 而跟着整个出产制作环境的改变 产品周期越来越短 多样少数的出产办法开始兴起 来自商场端的需求对仓储办理提出了更
  • MySQL 中的数据类型介绍

    据我统计 MySQL支持39种 按可使用的类型字段统计 即同义词也作多个 数据类型 下面的介绍可能在非常古老的mysql版本中不适用 转载请注明出处 http blog csdn net anxpp article details 5128
  • CSS样式--被忽略的前端基础(一)

    CSS样式 被忽略的前端基础 一 前言 以前学后端觉得前端不屑一顾 easy 后来从事前端开发后觉得其实并不简单 尤其是在css这一块 总觉得简单 没怎么系统的学习 现在觉得语言只是一种处理和解决问题工具 而你对基础掌握的深度影响着你解决问
  • H5选择本地文件夹下图片上传到服务器,并在网页中显示

    文章目录 基本 变种 html5 缺点 还要选择 基本
  • 面对“失业焦虑”我们可以做些什么?

    前言 在回答这个问题之前 我想先稍微聊一下我国当下的就业形势 当下的就业形势 近几年的就业形势非常严峻 除了疫情方面的影响 我认为更重要的是下行的经济环境带来的坏处 这二者相互叠加 给社会造就了如今这么复杂的就业现状 一 毕业生人数与就业岗
  • shell脚本中getopts的使用

    在shell中 getopts用于解析命令选项和参数 getopts是Bash shell的内置命令 不支持长选项 仅解析短选项 即一个破折号 和一个字母或数字 如 1 e E等 getopts格式如下 getopts OptString
  • 文件数据块分块算法解析

    文件数据块分块算法解析 1 简介 存储系统的重复数据删除过程一般是这样的 首先将数据文件分割成一组数据块 为每个数据块计算指纹 然后以指纹为关键字进行Hash查找 匹配则表示该数据块为重复数据块 仅存储数据块索引号 否则则表示该数据块是一个
  • CyclicLR pytorch实现

    论文 https arxiv org abs 1506 01186 论文中给了keras版本 1 如何寻找最大和最小学习率 参考https github com davidtvs pytorch lr finder 安装 python3 5
  • 9.1.3 定点数类型

    9 1 3 定点数类型 MySQL中的定点数类型只有DECIMAL一种类型 DECIMAL类型也可以使用 M D 进行表示 其中 M被称为精度 是数据的总位数 D被称为标度 表示数据的小数部分所占的位数 定点数在MySQL内部是以字符串的形
  • idea和eclipse修改背景颜色

    idea和eclipse修改背景颜色 idea修改背景颜色 file gt settings gt Editor gt Color Scheme gt 选择Darcula 应用即可 eclipse修改背景颜色 Window Preferen
  • k8s中Deployment模板

    apiVersion apps v1 kind Deployment metadata labels app app api name app api spec replicas 1 pod副本数 selector matchLabels
  • C++ 基础相关 备忘

    一 decltype 获取类型 typeid a name int i 0 decltype i j 0 cout lt lt typeid j name lt lt endl 二 编译选项 as needed g std c 11 o e
  • 电脑进不了桌面_XP系统进不了桌面,Explorer错误

    客户一台老电脑 XP系统进不了桌面 出现Explorer错误 故障原因 iexplore exe文件损坏或者系统中exe病毒 核心原因是垃圾软件进程注入explorer 3个解决方法 1 下载exe病毒专杀工具保存到u盘里面 U盘引导进PE
  • C++命名空间与头文件的关系

    C 命名空间与头文件的关系 一 添加一个头文件demonamespace h 内容如下 ifndef DEMONAMESPACE H define DEMONAMESPACE H class A public int value names