为什么采用两个指针的交换函数只能与 using 命名空间 std 一起使用?

2024-04-17

我有一堆这样的代码:

#include <iostream>
using namespace std;

void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int a = 7;
    int b = 5;
    swap(a, b);
    cout << a << b; // prints 57 as expected
}

但是,如果我删除using namespace std,编译器会抛出一个错误int to int*转换。为什么代码可以使用using namespace std即使我没有使用该方法&操作员?


在第一个例子中,std::swap被称为,因为你using namespace std。 第二个示例与第一个示例完全相同,因此您可能无法使用。

无论如何,如果你将函数重命名为my_swap或类似的东西(并改变每次发生的情况),那么第一个代码不应该像预期的那样工作。或者,删除using namespace std并打电话std::cin and std::cout明确地。我会推荐第二种选择。

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

为什么采用两个指针的交换函数只能与 using 命名空间 std 一起使用? 的相关文章

随机推荐

  • 为什么基元的包装类没有 setter?

    包装类 如 Integer Double 等 没有为其内部原始值设置 setter 的原因是什么 我问这个问题是因为这种功能可以简化微积分 并使 Java 语言更加灵活 让我举一些例子 1 我们看下面的例子 Integer x new In
  • 通过adb获取sdcard目录

    我正在制作一个应用程序 它通过 adb 从设备 SD 卡中提取文件 由 Android 应用程序保存 问题是不同的设备 有不同的SD卡目录 i e sdcard SD卡 external sd 首先我发明了以下解决方案 运行 adb she
  • 如何解决“安装包:当前环境没有打开的解决方案。”

    我有一个包含 1 个项目的解决方案 打开包管理器控制台 运行 Install Package MSBuildTasks 但它给了我一个错误 Install Package The current environment doesn t ha
  • 使用 getActivity() 进行强制转换安全吗?

    我正在编写一个有父级的应用程序Activity和几个孩子Fragments 我正在尝试让片段与父活动进行通信 我知道有几种方法可以做到这一点 包括创建一个接口并在父活动中实现它 不过 我对这个方法很感兴趣 ParentActivity ac
  • 禁用 sympy 中的自动简化

    我想禁用 sympy 中的自动简化 例如求解方程x y x我想要得到x x代替1 import sympy from sympy abc import x y z expr x y x sympy solve expr y gt 1 i w
  • 为什么 `head` 需要 `()` 而 `shape` 不需要?

    在下面的代码中 我将 csv 文件导入到 Python 的 pandas 库中并显示前 5 行 并查询 pandas 数据框的 形状 import pandas as pd data pd read csv my file csv data
  • 链接对象文件时出现“未定义的引用”错误[重复]

    这个问题在这里已经有答案了 我意识到这个问题已经通过多种方式提出 包括这个非常全面的答案 https stackoverflow com questions 12573816 what is an undefined reference u
  • DropBox Mac 客户端如何工作?

    我一直在看DropBox http www getdropbox com install os macMac 客户端和我目前正在研究为不同的服务实现类似的界面 他们究竟是如何与这样的取景器交互的 我非常怀疑文件夹中表示的这些对象是每次加载时
  • 颤振卡顶部半径被图像覆盖

    当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 class App extends StatelessWidget override Widget build BuildC
  • Razor 语法和 JavaScript

    作为测试 我将我们编写的概念验证应用程序从 Web 表单转换为 Razor 以便我们可以对其进行评估 到目前为止 我遇到了一个让我头疼的问题 生成客户端 Javascript 网络表格
  • PHP oci8 无法通过 pecl 安装:“致命错误:oci8_dtrace_gen.h”

    我正在尝试将我的 fedora 25 网络服务器 php 连接到 Oracle 数据库 为此 我需要 pecl 安装 oci8 但是我收到这个错误 bin sh var tmp pear build roottqYEC6 oci8 2 1
  • Erlang - 导入 GPG 公钥

    我正在尝试在 Erlang 中做一些与公钥相关的事情 它们要求我跟踪公钥 根据这一页 http www erlang org doc apps public key using public key html id61611 我应该能够通过
  • 通过 Spring 集成从分页 REST 服务读取和下载

    目前我正在开发一个 Spring Integration 应用程序 该应用程序具有以下场景 An int http outbound gateway从 REST Services 读取分页元素列表 about in 每个页面内容被分割并存储
  • 导航组件中操作和目的地之间的差异

    我想问一下Android导航系统中Action和Destination有什么区别 https developer android com guide navigation navigation getting started https d
  • Android 布局 - 下面的列表视图和编辑文本

    我试图模仿 HTC SMS 应用程序 传统视图 的行为 其中显示所有消息 并在下面显示 EditText 正如您在屏幕截图中看到的 向上滚动时 EditText 从底部滚动 即使阅读了多篇文章 例如带有 ListView 和按钮的 Andr
  • Jackson OffsetDateTime 序列化 Z 而不是 +00:00 时区?

    我将 Spring Boot 与以下 ObjectMapper 一起使用 Bean public ObjectMapper objectMapper final ObjectMapper mapper new ObjectMapper ma
  • 有没有办法对默认记录值进行查找?

    给定一个记录 record something id integer name string email undefined string undefined 有没有办法获取字段的默认值 在本例中得到的事实是 something email
  • 如何获取可选参数的默认值?

    我有一个带有可选参数的构造函数 我想要一个表情调用该构造函数而不提供可选参数 我的意思是让该对象使用参数的默认值构造 我在这里读到表达式树不能包含使用可选参数的调用或调用 https stackoverflow com questions
  • 在我的例子中操作栏自定义样式

    我正在使用 Android 原生操作栏 我想添加我自己的可绘制资源作为操作栏的背景 所以 我做了一个如下的主题 res values themes xml 然后 在AndroidManifest xml文件我将此样式添加到我的应用程序中
  • 为什么采用两个指针的交换函数只能与 using 命名空间 std 一起使用?

    我有一堆这样的代码 include