
C++
文章平均质量分 62
BigoSprite
这个作者很懒,什么都没留下…
展开
-
C++11中的std::function
前言C++11中的std::function来自“准”标准库Boost库,在C++11中function位于头文件functional中,在Boost库中,需要包含头文件:#include "boost/function.hpp"。那么什么是function呢?果冻想这样描述:通过std::function对C++中各种可调用实体(普通函数、Lambda表达式、仿函数、类成员函数以及类静态函数等)的封装,形成一个新的可调用的std::function对象,让我们不再纠结那么多可调用的实体,有种“万众归一”转载 2016-06-24 23:08:10 · 11135 阅读 · 0 评论 -
一个关于多态的问题
2018华为daniuchang一面#include using namespace std;class A{public: virtual void func(int a = 0){ cout << a << endl; }};class B : public A{public: virtual void func(int b = 1){ cout原创 2017-08-25 14:45:43 · 575 阅读 · 0 评论 -
2018届秋招提前批阿里在线编程
/*幼儿园有10个小朋友,把1 – 20中所有奇数数字的卡片分别发给这10个小朋友。集合的时候小朋友们排成一排,组成一个由数字组成的字符串,如59731315….11917,但是老师发现少了一个小朋友,你能帮忙找出少掉的那个小朋友吗?1 3 5 7 9 11 13 15 17 19// 1 7// 3 2// 5 2// 7 2// 9 2思原创 2017-08-06 21:05:40 · 3418 阅读 · 1 评论 -
对含有virtual function的class求sizeof
#include using namespace std;class A{public: virtual void func_1() {} virtual void func_2() {} virtual ~A() {}};class B{public: virtual void func_3() {}};class C : public B{public:原创 2017-07-20 11:35:38 · 509 阅读 · 0 评论 -
一道考查对象模型的C++笔试题
#include using namespace std;class parent{ int i;protected: int x;public: parent() { x = 0; i = 0; } void change() { x++; i++; } void display();};class son :public parent{public: void m原创 2017-07-20 11:02:17 · 579 阅读 · 0 评论 -
面试题28:不能被继承的类
在C#中定义了关键字sealed,被sealed修饰的类不能够被继承。在Java中同样也有关键字final表示一个类不能被继承。C++11提供final关键字使得类不能够被继承。那么,如何自己实现一个不被继承的类?常规的解法是,把类的构造和析构函数都设置为private即可,然后公有派生;这是因为子类访问不到父类私有属性。这使用了C++构造派生类实例时会自动先调用父类构造函数的特性,同样析构的顺序和原创 2017-06-13 22:24:52 · 3439 阅读 · 0 评论 -
C++中的显式类型转换
C++中类型的转换分位两种:隐式和显式转换;隐式转换发生在不经意间,比如int类型和float类型相加时,int类型会隐式转换为float类型,然后再相加运算。而今天主要介绍标准C++中的四个显式类型转换运算符:static_cast、dynamic_cast、const_cast和reinterpret_cast。本篇博文转自:果冻想,并做了细微的修改。注意:static_cast和dynamic_cast都可以对类间的类型进行转换,前者在向下转换时不在运行期进行类型检查,后者在运行期进行类型检查,较之安转载 2016-06-22 20:39:32 · 1074 阅读 · 0 评论 -
shared_ptr or: How I Learn To Stop Worring and Love Resource Management
shared_ptr翻译 2016-06-26 21:51:05 · 610 阅读 · 0 评论 -
C++11中的std::bind
导言 bind是这样一种机制,它可以将参数绑定于可调用对象,产生一个新的可调用实体,这种机制在函数回调时颇为有用。C++98中,有两个函数bind1st和bind2nd,它们分别用来绑定functor的第一个和第二个参数,都只能绑定一个参数。C++98提供的这些特性已经由于C++11的到来而过时,由于各种限制,我们经常使用bind而非bind1st和bind2nd。它们均在functional头文原创 2016-06-10 21:46:02 · 1864 阅读 · 1 评论 -
for_each()算法
[TOC] for_each()算法非常灵活,它允许我们以不同的方式访问、处理、修改每一个元素。虽然很方便,但是随着C++11的到来,基于范围的for循环提供了更方便更自然的行为,因此,for_each的重要性逐渐丧失,由Range-based for 循环取代。下面介绍for_each的4中常用用法。1. for_each()传入Lambda下面的例子把每一个元素传给一个lambda(传值的方式原创 2016-06-10 17:21:55 · 933 阅读 · 0 评论 -
C++11智能指针
C++11有哪些智能指针C++98标准只让标准库提供了一种智能指针:auto_ptr,而在C++11标准中unique_ptr取代了auto_ptr,auto_ptr正式被反对。原创 2016-06-10 09:32:28 · 930 阅读 · 0 评论 -
不使用virtual关键字实现C++多态
#include using namespace std;/* 不使用virtual实现多态可以用成员函数指针完成。 成员函数指针形式:返回类型(A::*指针名)(形参表) 其中A是类类型,即这个指针是指向A类的成员函数的函数指针 例如:int(A::*P)(int,int)这转载 2017-08-24 10:05:36 · 1239 阅读 · 0 评论