
C++
文章平均质量分 57
hll174
没有一开始的大牛,先做好自己的小菜
展开
-
C++中关于虚函数与虚函数表的理解
多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。没有虚函数的C++类,是不会有虚函数表的。两张图:原创 2014-10-06 17:26:44 · 1792 阅读 · 2 评论 -
《深入应用C++11》第一章
1,using可重定义一个模板,该模板既不是类模板也不是函数模板,是一种新的模板形式:模板别名templte <typename T>using func_t=void (*)(T,T);//使用func_t模板func_t<int> xxx_2;2,函数模板的参数在使用上与其他默认函数略不同,它没有必须写在参数表最后的限制。template <typename R = int , typen原创 2018-02-01 21:13:05 · 685 阅读 · 0 评论 -
c++中的std::bind与std::function
最近在看《深入应用c++11》的时候遇到了std::bind的一些新用法,之前没有遇到过,这里记录下。通常时候std::bind是与std::function一起结合使用的,std::bind是一个函数模板,而std::function是一个类模板,这个从其源码就可看出 /** * @brief Function template for std::bind. * @in原创 2018-01-21 12:49:39 · 1243 阅读 · 0 评论 -
为什么要使用虚函数和 指针(或是引用)才能实现多态?
网上找的 搜集在一起 https://www.cnblogs.com/bofengyu/p/6761389.htmlhttp://blog.youkuaiyun.com/sangyongjia/article/details/50888705https://segmentfault.com/a/1190000004359057http://www.cnblogs.com/0xcafebabe/p/442369...转载 2017-09-06 23:29:16 · 935 阅读 · 0 评论 -
c++合成默认构造函数与new关键字带不带括号的分析
合成默认构造函数原创 2017-11-15 10:23:23 · 2924 阅读 · 0 评论 -
c++多态中关于参数匹配推导与模板参数推导
在调用一个函数的时候,当参数是基类的时候,有时候传子类对象也是能够正常运行; 在调用模板函数的时候,模板有时候能够自动推导出参数的类型,得到理想的结果,但是很多时候模板参数并不会按我们想象的那样进行推导,从而调用错误;下面是自己遇见的一些小的总结原创 2017-11-14 21:23:11 · 868 阅读 · 1 评论 -
c++中四种强制类型转换(const_cast、static_cast应用最多)
c++动态类型转换有四种const_cast、static_cast、dynamic_cast、reinterpreter_cast前面两个用的多,但是后面的针对其设计理念有许多其他的实现方法可达到同样的效果 - static_cast (1)用于基本数据类型之间的转换,如把int转换为char,把int转换成enum,但这种转换的安全性需要开发者自己保证(这可以理解为保证数据的精度,即程序员能原创 2017-10-17 19:32:31 · 6224 阅读 · 0 评论 -
剑指offer[一]:二维数组中的查找(java和c++版本)
二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 java实现版本public class Solution { public boolean Find(int [][] array,int target) { /**原创 2017-11-05 14:53:59 · 709 阅读 · 0 评论 -
剑指offer[三]:从尾到头打印链表(java和c++版本)
从尾到头打印链表输入一个链表,从尾到头打印链表每个节点的值。 Java版本/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }*原创 2017-11-12 22:19:37 · 349 阅读 · 0 评论 -
剑指offer[二]:替换空格(java和c++版本)
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。java版本public class Solution {/** * 暴力法的话就没意思 */ public static String replaceSpace(StringBuffer str) {原创 2017-11-05 15:03:37 · 528 阅读 · 0 评论 -
《深入应用c++11》第二章
1,区分c++中的左值与右值 左值是表达式结束后依然存在的持久对象,右值是表达式结束后不再存在的临时对象。 最简单的区分方法是:能对表达式取地址的是左值,不能的是右值 右值=将亡值+纯右值2,常量的左值引用是一个“万能”引用类型,可以接受左值、右值、常量左值和常量右值。3,只有当发生自动类型推导的时候(例如函数模板的类型自动推导,或auto关键字),&&才是一个通用的引用universal r原创 2018-02-03 18:20:06 · 596 阅读 · 0 评论