c++
li_zi_ang1354
这个作者很懒,什么都没留下…
展开
-
通过函数名调用函数和通过函数指针调用函数有什么区别?
1.通过函数名调用函数和通过函数指针调用函数有什么区别呢?首先函数名、函数指针都表示代码段的起始地址。1)调用函数的时候必须指定函数名,可是当有时候不确定具体调用哪个函数,当某些事件发生后才确定,所以事先就定义一个函数指针(比如回调函数)2)函数的调用有函数栈桢的开辟。3)函数指针不会处理成内联函数2.为什么调用函数指针没有直接调用函数效率高?1)会产生野指针(这是安全,不...原创 2018-10-09 14:41:36 · 2480 阅读 · 0 评论 -
struct与class的区别(含struct空类型的内存分析)
1.struct定义一个结构体成员变量和成员函数的默认访问权限为public。class定义一个结构体成员变量和成员函数的默认访问权限为private。struct更适合看成是一个数据结构的实现体。class更适合看成是一个对象的实现体。class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。在cpp中对两者的初始化不...原创 2018-10-09 16:08:22 · 298 阅读 · 0 评论 -
c++关键字explicit
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型...原创 2018-10-10 16:38:06 · 268 阅读 · 0 评论