首页 > 编程语言 >C++

C++

时间:2024-10-25 11:43:00浏览次数:3  
标签:std int C++ Base func using

C++

C++11

using

1.相比与typedef,using在定义函数指针时更加直观

using func_ptr1 = int(*)(int, double);

2.using可以为模板起别名

template <typename T>
using mymap = map<int, T>;

3.使用 using 来引入整个命名空间或某个特定的名字,可以简化代码书写

using namespace std;

4.using和typedef一样可以来创建类型别名

using uint_t = int;

来源

点击查看代码
大丙:
https://subingwen.cn/cpp/using/#1-%E5%AE%9A%E4%B9%89%E5%88%AB%E5%90%8D

GTP:
`using` 是 C++ 中一个非常有用的关键字,主要有以下几种用法:

### 1. 引入命名空间
在 C++ 中,你可以使用 `using` 来引入整个命名空间或某个特定的名字,以简化代码书写。

```cpp
#include <iostream>

using namespace std;

int main() {
    cout << "Hello, World!" << endl; // 不需要 std::
    return 0;
}

2. 声明类型别名

using 可以用来创建类型别名,类似于 typedef

using IntPtr = int*;

IntPtr p = nullptr; // p 是一个指向 int 的指针

3. 引入特定名称

你也可以只引入命名空间中的某个特定名字,这样就不需要每次都加上命名空间前缀。

#include <iostream>

using std::cout;
using std::endl;

int main() {
    cout << "Hello, World!" << endl; // 使用了 cout 和 endl,而不是 std::cout 和 std::endl
    return 0;
}

4. 在模板中使用

在模板中,using 关键字用于定义类型的别名,特别是在泛型编程中。

template<typename T>
using Vec = std::vector<T>;

Vec<int> v; // v 是一个 vector<int>

5. 在类中使用

在类中,可以使用 using 来导入基类的成员。

class Base {
public:
    void func() {}
};

class Derived : public Base {
public:
    using Base::func; // 导入 Base 类中的 func 方法
};

int main() {
    Derived d;
    d.func(); // 可以调用 Base 类中的 func
    return 0;
}

小结

using 是一个非常灵活的关键字,可以提高代码的可读性和简洁性。熟练使用这一特性能帮助开发者更高效地编写 C++ 代码。

</details>

标签:std,int,C++,Base,func,using
From: https://www.cnblogs.com/qwer321/p/18502180

相关文章

  • C++中声明和定义的注意事项
    前言:最近学习完C++的一些基本知识之后,开始了C++核心编程内容的学习。学习到了类和对象的部分。其中,在昨天学到友元的时候,遇到了一个问题,我就写了两个类,只不过这次把类的成员函数的实现写在了类外。本来想着的是,反正后面学习会把声明和定义分开写成.h和.cpp文件,就寻思先试试把定......
  • C++左移运算符重载的理解
    最近学习C++学到了运算符重载的部分,大部分运算符重载都就可以实现作为类中成员函数和全局函数进行重载实现,而左移运算符“<<”却只支持全局函数进行重载。这是是为什么呢?我来谈谈我的理解。大家首先随便用cout输出一下,然后点击cout然后右键选择转到声明:我们会看到如下图显示......
  • C++ 内存管理 堆和栈、内存泄漏、内存分配、指针与内存、智能指针、malloc和free、new
    1.堆和栈的区别1.**管理方式**:-**栈**:自动管理。当函数调用时,局部变量会自动分配在栈上。函数执行完毕后,这些变量会自动释放。-**堆**:手动管理。程序员需要使用`new`来在堆上分配内存,并在不再需要时使用`delete`来释放。2.**使用方式和寿命**:-**栈**:用......
  • C++ 好用的包管理工具--vcpkg
    https://blog.csdn.net/lizhichao410/article/details/132339064 背景Windows下开发C/C++程序,少不了编译开源的第三方库,使用这些库开发极大的方便了程序员,使得我们不必重复造轮子。由于开源库绝大部分都来源于Linux系统、将其移植到Windows的VC开发环境下编译比较复......
  • 【32】C++流
    C++流IO: 向设备输入数据和输出数据C++的IO流设备: 文件控制台特定的数据类型(stringstream)c++中,必须通过特定的已经定义好的类, 来处理IO(输入输出)读写文件:文件流文件流: 对文件进行读写操作头文件:  <fstream>类库:   ifstream   对文件输入(读......
  • C++的汉诺塔
    汉诺塔(TowerofHanoi)是一个经典的递归问题。问题的描述如下:有三根杆(通常称为A、B、C),以及一系列大小不同、穿在一根杆上的圆盘。这些圆盘可以滑动到任何一根杆上,但是每次只能移动一个圆盘,且不能将较大的圆盘放在较小的圆盘上。目标是将所有圆盘从杆A移动到杆C。下......
  • springboot巡更系统--10192(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程
    摘 要目前,在日常生活中随处可见社区巡更人员对特定的区域进行定期或者不定期的安全巡查管理。包括勤前训示、必到点签到、巡更路线等,各项勤务工作均由巡更员本人在执勤日志本中手工填写,且工作点分散,不利于统一监管,存在信息化手段不足,勤务信息获取、输入复杂,监管信息不能实时......
  • 【最新原创毕设】基于JSP+SSM的民宿预约平台+79197(免费领源码)可做计算机毕业设计JAVA
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状2系统分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统流程分析2.2.1添加信息流程2.2.2修改信息流程2.2.3删除信息流程2.3 系统功能分析2.3.1功能性分析2.3......
  • C++中的内存管理
    下图是C++的内存储存管理的方式  由图不难得知,局部变量是储存在栈中的,而malloc,calloc,realloc开辟出来的空间是储存在堆中的,全局数据和静态变量储存在数据段中,也叫静态区.代码段存的是可执行代码和只读常量。 C语言中动态内存管理方式:malloc/calloc/realloc/f......
  • C++模板
    模板初阶如何实现一个通用的加法函数?我们可以类似这样使用函数重载的方法进行编写intsum(int&a,int&b){ returna+b;}doublesum(double&a,double&b){ returna+b;}使用函数重载虽然可以实现,但是有一下几个不好的地方:1.重载的函数仅仅是......