
C++语言
ARTELE
爱好计算机
展开
-
C++函数指针写法和类型声明
0.简介函数指针大多数用的不多,我觉得啊,但是实际上函数指针很有用,且用起来特别灵活优美。1.函数指针声明函数指针声明方式有点怪,一般就是如下。void print(){ cout << "hello" << endl;}int main(){ void(*fun_ptr)() = print;//void为返回类型,第二个括号为参数列表,第一个括号是变量名 fun_ptr(); return 0;}在实际赋值的时候和普通数值指针没区别,使用的原创 2020-11-12 21:56:34 · 2344 阅读 · 0 评论 -
C++ 类与对象探秘---结构体实现类
0.简介在C++中,class和struct几乎没有区别,非要说有区别,就是默认访问权限的区别,class默认私有,struct默认公有,这回主要通过C语言的结构体来了解一下C++类和对象的一些原理。1.struct与class的普通成员函数结构体中,可以放变量,还有函数声明,这里设定不将函数声明写在结构体中。//演示类1struct Animal{ //名字 string name;};void print(Animal* THIS){ cout << THI原创 2020-11-05 21:32:15 · 568 阅读 · 0 评论 -
C++模板可变参数(2)---tuple
0.简介前一篇介绍了模板的可变参数在函数的用法,这次来研究一下在类中的用法。1.tuple在STL中有tuple,其可以包含多种不同类型的变量用法如下。tuple<int> a;tuple<int,float> b;tuple<int,float,double> c;上面的用法和上一篇的print函数中的参数很类似,所以我分析tuple里面也用到了类似的原理,所以我们自己简要实现一下。2.mytuple显然下面的代码是不能达到目的的。原创 2020-11-05 20:30:56 · 591 阅读 · 0 评论 -
C++ 模板可变参数(1)---函数
0.简介模板可变参数是一种可以变化模板中类型参数个数并且令类或者函数支持多种不同类型参数,和不定参数个数的神奇玩法。1.print函数设计一个print函数,希望可以有如下效果。print(1);print(1,3.2);print(1,9.9,"abc");同一个函数可以接收可变个数目和不同类型的参数,需要模板和可变参数同时配合。下面这段代码中,arg...就是可变参数的一个"包",其实里面有多个参数捏在一起,先可以这么理解,当调用print(1,2,3,4,5)的时候,1会原创 2020-10-26 21:30:45 · 388 阅读 · 1 评论 -
C++ 知识点零碎补充 位域
0.简介本篇介绍位域和一些不容易注意到的特性。1.位域一般在结构体的变量声明中用位域,例如struct A{ int a : 5, b : 3, c : 6, x : 5;};这时候,a,b,c,x冒号后面数字的意义是这个变量占用几个位,分别是5,3,6,5。因为声明的时候是int类型,这四个变量的位的总和不超过一个int的宽度,那么他们就共同占用一个int的位置,实验为32位程序,那么这个结构体的大小为4字节。并且如下操作也是不允许的。sizeof(A::a);abc原创 2020-07-02 12:38:19 · 263 阅读 · 0 评论