c++11 using的三种用法

10 篇文章 3 订阅
订阅专栏

前言

前段时间,正巧碰到了UE4源码中的一些代码中using的用法,因此查阅资料之后写下了这篇文章

 实例代码:

#include <iostream>
using namespace std;

namespace TestNameSpace
{
	void TestFunction() 
	{
		cout << "这是命名空间的TestFunction" << endl;
	}
}

class Parent
{
public:
	Parent() {};
	~Parent() {};
	int value = 10;
	void TestFunction()
	{
		cout << "这是父类的TestFunction"<<endl;
	}
};

class Child:private Parent
{
public:
	Child() {};
	~Child() {};
	using Parent::TestFunction;
	using test = int;
	using Parent::value;
};

int main()
{
	Child a;
	using namespace TestNameSpace;
	TestFunction();
	a.TestFunction();
	a.value = 20;

	cout << "a.value"<< 20 << endl;
	return 0;
}

运行结果:

上面是我对using三种用法的尝试

用法一:就是c++98常见的导入命名空间,则可以使用命名空间中的方法,在此不过多赘述,想必大家都已经掌握,列如示例中using namespace TestNameSpace;使用之后则可以直接调用TestNameSpace命名空间中的内容。

用法二:起别名,这通常用于模板函数作起别名的作用,类似于Typedef,但是区别在于用usin的方式,可以私有继承,但是却能在main函数中访问,例如示例中class Child:private Parentprivate继承的,但是在main函数中却访问到Child::value变量,开局第一张图则是起别名的作用

用法三:就是在子类中引用基类的成员,using Parent::TestFunction;using Parent::value;在此处可以访问到私有继承的方法

C++(11):通过using定义类型别名
风静如云的博客
04-23 2188
C/C++可以通过使用typedef为类型定义别名,C++11增加了通过使用using来定义类型别名的方式,与typedef可以认为是等价的: #include <iostream> using namespace std; using sint = int; typedef int SINT; int main(){ cout<<is_same<sint, SINT>::value<<endl; return 0; } 运行程序输出:1 可见
C++11新特性:using和namespace的特殊用处
ISmileLi的博客
04-05 3502
using和namespace的特殊用处零、前言一、using1、类型别名2、别名模板3、代码示例二、namespace1、命名空间2、命名别名3、使用示例 零、前言 C++11以后增加了许多新的特性,这些新的特性越来越方便C++程序员的编码,也再次赋予了C++新的活力与朝气!截止到目前C++20的标准已经出来了,C++这位“老先生”正在紧跟时代的步伐!作为Cpper也应该紧跟这位“老先生”脚步。...
C++11: using 的使用
SpringDou的博客
07-12 358
using关键字的三种用法 1.指定命名空间,比如,在C++编码学习之初常用的 using namespace std; 2.在子类中引用父类中的变量,这种用法比较特殊, class T5Base { public: T5Base() :value(55) {} virtual ~T5Base() {} void test1() { cout <<...
十、C++11常用新特性—using
最新发布
qq_45180349的博客
07-10 361
C++11常用新特性—using
C++11using
九筒的博客
04-23 313
目的 定义别名 声明命名空间 表示方式 //声明命名空间 using namespace std; //using 新的类型 = 旧的类型; 可读性与typedef相差无几 using ll = long long; //using 定义函数指针func_ptr,凸显using的可读性 using func_ptr = int(*)(int, double);//返回值是int,两个参数int和double //模板的别名 template<typename T> using mymap =
c++11using的使用
qq_41543888的博客
09-20 181
转自:https://blog.csdn.net/zzyczzyc/article/details/94290574 还可以看看:https://blog.csdn.net/wishchin/article/details/79870177 文章目录 用法一:命名空间 用法二:alias的使用 用法三:子类引用基类成员 用法一:命名空间 这种用法估计使用最多的...
c++ 11的using
Birate的博客
05-30 255
c++11中我们可以使用using定义别名,例如: 我们定义一个模板,使用using template<typename T> using vec = std::vector<int MyAlloc<int>>; //使用 vec<int> coll; //等同于 std::vector<int MyAlloc<int>> coll; 我们使用#define 或者 typedef 试试; #define Vec<T>
C++ using namespace std 用法深入解析
01-01
后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。 因此,当使用时,...
深入理解c++11pdf
06-27
C++11之前,多态性依赖于虚函数,但缺乏明确的方法来防止派生类覆盖基类的特定虚函数。`final`关键字的引入解决了这个问题,它允许程序员声明某个虚函数为最终的,不能在派生类中被重写。例如: ```cpp struct ...
HanquanHq#MD-Notes#2.using关键字在C++中的几种用法1
07-25
using 关键字在 C++ 中的几种用法using 声明 (using declaration) 是将命名空间中单个名字注入到当前作用域的机制,使得在当前作用
using的使用(C++11
xiejiamei的博客
11-17 333
1.定义 类型 别名 using D  = double;//D 就是 类型double的别名  ,等价于 typedef double D; 2.说明  命名空间 using namespace:: std ;//使用命名空间 std using std::cin;// 程序中出现的 cin 属于 std命名空间 注意:头文件中 不要使用 using,因为头文件会被其
学习总结:c++11using
qq_30667875的博客
02-26 276
c++11using主要有2个功能:1.限制作用域; 2.类型别名限制作用域    using namespace std;   //使用std    using namespace std::cout; //使用std::cout类型别名    1)通用类型或接口等的别名,功能类似typedef    eg 1: 基本类型using u_int = unsigned int; typedef ...
c++11using的使用
zzyczzyc的博客
06-30 2177
文章目录用法一:命名空间用法二:alias的使用用法三:子类引用基类成员 用法一:命名空间 这种用法估计使用最多的,为了防止定义变量名、函数名冲突,把它们定义在一个命名空间内,使用的时候需要进行命名空间的申明:using namespace std;就不过多讲解。 用法二:alias的使用 using 还可以指定别名,比如using SO3d = SO3<double>; 那么它和...
[c++11] using用法
weixin_44901043的博客
05-05 1008
为什么要引入using using和typedef的作用都是为了,定义类型别名。既然有typedef了,为什么还要引入using呢? 答案:为了弥补typedef的不足。using 的别名语法也覆盖了 typedef 的全部功能,C+11标准鼓励用using,因为using比较直观。 using比typedef直观 // 重定义unsigned char typedef unsigned char ty_uchar; using ty_uchar = unsigned char; //
C++11using用法
weixin_42483745的博客
09-15 469
C++11using关键字的主要作用是:为一个模板库定义一个别名。下面列举出using的几种用法: 1、用法一:引用命名空间 using namespace std;using 还可以指定别名,比如using SO3d = SO3; 那么它和typedef ,有什么区别?此外,using可以指定模板的别名,而typedef不行 3、用法三:子类引用基类成员 假如子类私有继承父类,子类无法使用父类的成员(变量,函数等),但是使用using可以访问,code如下: 注:此时也只可通过using访问基类的pub
c++ 11 using用法
天才樱木
01-08 545
一般的using关键子我们都是用来声明当前文件的命名空间,比如标准库的命名空间std-> using namespace std; 但在c++11中,它的用处还有几个 1:取代typedef  ,2:让父类同名函数在子类中以重载方式使用 以下是《深入理解c++11》的对1:的截图 以下是自己的实现 [cpp] view plain copy //
C++ 11学习之------using
u011269801的专栏
08-08 451
usingC++11之前主要用于名字空间、类型、函数与对象的引入,实际上是去除作用域的限制。 using引入函数可以解除函数隐藏 “隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下: 1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆) 2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆) 使用了using关键字,就可以避免1的情况,是的
C++11 using 语法
weixin_42244181的博客
08-07 1124
using 语法和 typedef 一样,并不会创建出新的类型,它们只是给某些类型定义了新的别名。using 相较于 typedef 的优势在于定义函数指针别名时看起来更加直观,并且可以给模板定义别名。 在 C++using 用于声明命名空间,使用命名空间也可以防止命名冲突。在程序中声明了命名空间之后,就可以直接使用命名空间中的定义的类了。在 C++11 中赋予了 using 新的功能,让 C++ 变得更年轻,更灵活。 1. 定义别名 在 C++ 中可以通过 typedef 重定义一个类型,语法格式如
c++ using用法
08-22
下面是两种常见的using用法: 1. 引入命名空间: 在C语言中,没有命名空间的概念,但是在一些编译器中会提供using指令来模拟命名空间的效果。例如,在某个头文件中定义了一些函数和变量,我们可以使用using来引入这...
写文章

热门文章

  • UE(虚幻引擎)操作技巧(蓝图与打包) 4477
  • UE4C++UI平滑曲线图绘制 4372
  • 番茄插件遇到的各种安装问题处理 4303
  • UE4C++泛型蓝图节点 4263
  • UE4c++ Slate整套学习流程(源码编译+Slate框架+SlateViewer) 4196

分类专栏

  • UEC++ 11篇
  • DX12 4篇
  • C++ 10篇
  • OpenAI
  • UE 1篇
  • 虚幻 1篇
  • 番茄插件 1篇
  • Visual Assist 1篇
  • 数论 1篇

最新评论

  • UE4/UE5 材质实现带框环形进度条

    UE搬砖人: 嗯,后面都写代码吧,材质想截清楚,麻烦,视频就不出了,这种文档都很好查的

  • UE4/UE5 材质实现带框环形进度条

    头霸王: 有些結點 看不清 下次 能梳理一下嗎 出個 視頻鏈接嗎 大佬

  • UE4C++泛型蓝图节点之K2Node蓝图节点

    UE搬砖人: 抱歉,粘错了,马上改

  • UE4C++泛型蓝图节点之K2Node蓝图节点

    UE开发-CloudV: 你的.h和.cpp是同一个

  • UE5 双手握剑的实现(逆向运动学IK)

    ha_lydms: 这个博客是我心灵的驿站,每次阅读都能够让我感到内心平静和宁静。

大家在看

  • 犀牛数据爬虫逆向分析
  • 【学习笔记】手写 Tomcat 五 57
  • Study Plan For Algorithms - Part35
  • 许少辉加工中心《乡村振兴战略下传统村落文化旅游设计》南门方向辉少许
  • 《动手学深度学习》笔记1.6——多层感知机→代码实现 1779

最新文章

  • UE5 堆栈信息打印
  • UE4 Unlua的快速使用
  • UE4编辑器按End键Actor贴近地面
2024年20篇
2023年11篇
2022年23篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家走廊商场美陈批发价玻璃钢雕塑和石膏雕塑区别天津玻璃钢小品雕塑青岛商场美陈制造玻璃钢梅花鹿雕塑厂家上海主题商场美陈价格鹤山玻璃钢雕塑费用商场中央大厅美陈吊顶海盐玻璃钢造型雕塑上海超市商场美陈生产厂家铜陵五一商场美陈贵阳玻璃钢天壶雕塑蜗牛玻璃钢雕塑现货金华玻璃钢雕塑企业上海公园玻璃钢雕塑定做玻璃钢m豆雕塑有机玻璃钢雕塑设计道教玻璃钢雕塑施工营口玻璃钢雕塑定制价格广场标识玻璃钢仿铜雕塑报价楼盘玻璃钢雕塑参考价福建玻璃钢雕塑仿真牛仿木纹玻璃钢雕塑商场美陈购销合同范本广州商场美陈福建人物玻璃钢雕塑图片佛山校园玻璃钢雕塑辣椒玻璃钢雕塑价格石家庄玻璃钢雕塑厂家价格山东玻璃钢花盆供应香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化