菜鸟笔记
提升您的技术认知

C++ 笔记 第39页

重载new和delete运算符

菜鸟阅读 : 1826赞(0)

内存管理运算符 new、new[]、delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数。一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内存时才会重载。 以成员函数的形式重载 n...

C++重载

菜鸟阅读 : 2747赞(0)

C++ 不允许变量重名,但是允许多个函数取相同的名字,只要参数表不同即可,这叫作函数的重载(读“虫载”,不读“众载”,其英文是 overload)。重载就是装载多种东西的意思,即同一个事物能完成不同功能。 函数的重载使得 C++ 程序员对完...

C++虚函数机制解析

菜鸟阅读 : 2797赞(0)

概述:虚函数的目的是实现运行时多态,程序在运行时才知道要调用那些函数。这属于泛型技术(包括模板、RTTI、虚函数)。 使用:用于父类型指针指向子类的对象时。 虚函数表V-table 类中成员函数在内存中不占空间,这个比较好理解。例如一个汽车...

重载new与delete

菜鸟阅读 : 2821评论(0)赞(0)

内存管理运算符 new、new[]、delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数。一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内存时才会重载。 #include <...

类成员函数作为pthread_create函数参数

菜鸟阅读 : 2519赞(0)

近日需要将线程池封装成C++类,类名为Threadpool。在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter。编译之后报错如下: spfs_threadpool.cpp:&nb...

C++项目使用sqlite中文乱码问题

菜鸟阅读 : 2404赞(0)

理论是:sqlite使用的是UTF-8,C++中用的字符串是ascii或unicode编码。          所以使用时候要进行转化。插入中文时候要转化为UTF-8,读取时候再转化回来。 ...

C++11的std::async代替线程的创建

菜鸟阅读 : 1888赞(1)

c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的: void f(int n); std::thread t(f, n + 1); t.join(); 但是线程毕竟是属于比较低层次的东西,有时候使用有些不便,比如...

C++ 11 线程调用类的成员函数解决办法

菜鸟阅读 : 2508赞(1)

在C++中,_beginthreadex 创建线程是很麻烦的。要求入口函数必须是类的静态函数。 通常,可以采用thunk,或者模板来实现。 因C++ 11中引入了 std::async ,可以很好的解决这个问题了。 值得注意的是,在循环中 ...

线程调用C++类成员函数

菜鸟阅读 : 3405赞(0)

方法就是: 1,写成静态成员函数 2,参数为 (void* __this)用来传入类 对象指针(this) 3,进入函数首先    C类名 *_this = (C类名*)__this;  转化为对象指...

dynamic_cast

菜鸟阅读 : 2851赞(0)

dynamic 转换时的类必须有虚函数,否则会编译报错。 #include <iostream> using namespace std; class A { public: int a ; int b; void prt(vo...