C++基础
文章平均质量分 65
smartDMer
研究方向:音视频技术
展开
-
C++数据类型转换
C++模板数据类型转换转载 2023-03-09 10:24:46 · 215 阅读 · 0 评论 -
C与C++:const在*和函数体前后的区别
const变量与函数原创 2023-03-03 14:34:20 · 1342 阅读 · 0 评论 -
C++学习建议
C++学习建议C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C++程序设计原理与实践》,而一般C++课程也止于此,另外《C++ 标准程序库》及《The C转载 2022-05-28 17:37:10 · 178 阅读 · 0 评论 -
strcpy & strcpy_s & wcscpy & wcscpy_s & strncpy & strncpy_s
strcpy & strcpy_s & wcscpy & wcscpy_s:将源字符串整体拷贝到目标地址,不支持部分拷贝?wcscpy_s(dest, wcslen(src)+1, src); //src结束符也拷贝strncpy & strncpy_s:支持部分拷贝字符串from:https://blog.csdn.net/jiangdong2007/article/details/81297360int _tmain(int argc, _TCHAR.原创 2021-01-04 19:14:55 · 208 阅读 · 1 评论 -
sizeof() & wcslen() & _countof()
wchar_t array[256] = {0};sizeof(wchar_t) = 2sizeof(array) = sizeof(wchar_t)*256wcslen(array) = 0;//实际字符个数_countof(array) = 256原创 2021-01-04 19:13:08 · 234 阅读 · 0 评论 -
C++ 虚函数-虚表-虚指针-多态性-如何实现多态-纯虚函数-抽象类
/-->类-->虚表/创建virtual 在构造函数中 \-->对象-->虚指针 \初始化...转载 2019-06-02 23:20:56 · 250 阅读 · 0 评论 -
C++ 虚函数详解
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不...转载 2019-06-02 23:26:27 · 7726 阅读 · 0 评论 -
每个C++开发者都应该使用的10个C++11特性
来源:http://www.ituring.com.cn/article/39533这篇文章讨论了一系列所有开发者都应该学习和使用的C++11特性,在新的C++标准中,语言和标准库都加入了很多新属性,这篇文章只会介绍一些皮毛,然而,我相信有一些特征用法应该会成为C++开发者的日常用法之一。你也许已经找到很多类似介绍C++11标准特征的文章,这篇文章可以看成是那些常用特征描述的一个集合。目录...转载 2019-06-15 10:58:06 · 524 阅读 · 0 评论 -
《深入应用C++11》笔记-时间相关工具chrono,duration、time_point、clock
chrono是一个模版库,包含了一系列时间相关功能。durationstd::chrono::duration 和字面意思一样,表示一段时间,原型是一个模板类:template< class Rep, class Period = std::ratio<1>> class duration;1234Rep...转载 2019-06-23 07:37:30 · 1217 阅读 · 0 评论 -
《深入应用C++11》笔记-异步线程操作std::async、std::future、std::promise、std::packaged_task
上一篇:《深入应用C++11》笔记-互斥量std::mutex、锁std::lock_guardstd::async和std::futurestd::async()是一个接受回调函数或函数对象作为参数的函数模板,并可以异步执行它们。通过这个异步接口可以很方便的获取线程函数的执行结果,std::async会自动创建一个线程去调用线程函数,它返回一个std::future。...转载 2019-06-23 07:44:43 · 418 阅读 · 0 评论 -
《深入理解C++11》笔记-智能指针unique_ptr、shared_ptr、weak_ptr
sharerd_ptr不能直接返回this指针(double free类似5.1 a),需要通过派生std::enable_shared_from_this类,并通过其方法shared_from_this来返回智能指针,因为std::enable_shared_from_this类中有一个weak_ptr,这个weak_ptr用来观测this指针,调用shared_from_this方法时,调用了内部的weak_ptr的lock()方法,将所观测的sharerd_ptr返回。转载 2019-06-23 07:52:27 · 446 阅读 · 1 评论 -
C++11中智能指针的原理、使用、实现
目录理解智能指针的原理 智能指针的使用 智能指针的设计和实现1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等...转载 2019-06-23 17:35:09 · 160 阅读 · 0 评论 -
C++并发编程实战--笔记
2.1.1有件事需要注意,当把函数对象传入到线程构造函数中时,需要避免“最令人头痛的语法解 析”(C++’s most vexing parse, 中文简介)。如果你传递了一个临时变量,而不是一个命名的变 量;C++编译器会将其解析为函数声明,而不是类型对象的定义。例如:std::thread my_thread(background_task());//...原创 2019-06-08 18:10:48 · 874 阅读 · 0 评论 -
C++11线程同步、互斥、
1。线程同步:临界区、互斥量、事件、信号量2。线程等待:事件、条件变量、while/sleep()、join条件变量等待线程与通知线程使用不同类型锁:https://blog.csdn.net/lijinqi1987/article/details/784257813。线程回调:如何从工作线程切换到UI主线程?4。主线程退出前,如何确保所有子线程已退出?多线程析构,退出进程?...原创 2019-06-02 21:46:29 · 1514 阅读 · 1 评论 -
C++11线程注意点
1。拷贝构造函数thread(const thread&) = delete;拷贝构造函数被禁用,std::thread对象不可拷贝构造2。Move构造函数thread(thread&& x)noexcept调用成功原来x不再是std::thread对象void threadFun(int& a){ cout << "...转载 2019-06-02 11:32:00 · 164 阅读 · 0 评论 -
内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放转载 2012-03-28 20:52:20 · 860 阅读 · 0 评论 -
left of '->GetStatus' must point to class/struct/union/generic type
LRESULT CALLBACK PlayWindow::PlayWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)//这是一个static成员函数{ switch (uMsg) { case WM_LBUTTONDOWN: if(m_pIPlayCtrl->GetStatus() == 3)原创 2012-04-28 11:47:58 · 5109 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 ....... 该符号在函数 ... 中被引用
error LNK2019: 无法解析的外部符号 "public: __thiscall CGdipButton::CGdipButton(void)" (??0CGdipButton@@QAE@XZ),该符号在函数 "public: __thiscall TestWindow::TestWindow(class CWnd *)" (??0TestWindow@@QAE@PAVCWnd@@@Z原创 2012-06-08 19:47:20 · 1392 阅读 · 0 评论 -
MFC窗口风格(WS_style/WS_EX_style)
窗口风格(Window style)WS_BORDER 有边框窗口WS_CAPTION 必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用。指示窗口包含标题要部分。WS_CHILD 说明窗口为子窗口,不能应用于弹出式窗口风格(WS_POPUP)。WS_CHILDWINDOW 同WS_CHILD。 WS_CLIPCHILDREN转载 2012-06-08 17:30:40 · 1248 阅读 · 0 评论 -
给MFC应用程序加上全屏幕的功能
很多的播放器都有快捷键控制窗口以全屏幕的方式显示。给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以工作了。01020304050607080910111213141516171819202122232425转载 2012-06-08 17:32:38 · 638 阅读 · 0 评论 -
解决透明static控件后刷新问题
我相信很多VC程序员,都用过OnCtlColor来改变控件的底色,字体颜色等。但是static控件改变之后,就会照成控件不刷新的问题。HBRUSH CStadus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlCol转载 2012-06-18 18:54:26 · 948 阅读 · 0 评论 -
VC MFC 带标题栏的窗口和不带标题栏的窗口最大化
不带标题栏的窗口最大化:第一种情况:覆盖任务栏ShowWindow(SW_SHOWMAXIMIZED);第二种情况:不覆盖任务栏int cx = GetSystemMetrics(SM_CXFULLSCREEN);int cy = GetSystemMetrics(SM_CYFULLSCREEN);CRect rt;SystemPar转载 2012-07-12 16:53:00 · 2968 阅读 · 0 评论 -
C++回调实现方式
1。对象指针与函数指针:回调函数参数传入对象this和函数名称,否则只有全局函数或静态函数才能作为函数指针传递2。std::function和std::bindhttps://www.jianshu.com/p/f191e88dcc80C++参考手册中对function的介绍:std::function的实例能存储、复制及调用任何可调用的目标,包括:函数、lambda表达式、bin...原创 2019-06-07 08:47:59 · 2031 阅读 · 0 评论 -
C++11--右值引用
1。左值、右值、左值引用、右值引用https://www.jb51.net/article/85549.htmhttps://www.jb51.net/article/136337.htmhttps://www.cnblogs.com/qicosmos/p/4283455.html通常意义上,在C++中,可取地址,有名字的即为左值。不可取地址,没有名字的为右值。右值主要包括字面...转载 2019-05-28 14:32:34 · 131 阅读 · 0 评论 -
C/C++引用和指针的区别
为什么C/C++语言使用指针?答案:①一方面,每一种编程语言都使用指针。不止C/C++使用指针。每一种编程语言都使用指针。C++将指针暴露给了用户(程序员),而Java和C#等语言则将指针隐藏起来了。“Everything uses pointers. C++ just exposes them rather than hiding them,”It's easier to gi...转载 2019-05-28 21:57:58 · 21261 阅读 · 2 评论 -
C++:shared_ptr简介以及常见问题
本文中的shared_ptr以vs2010中的std::tr1::shared_ptr作为研究对象。可能和boost中的有些许差异,特此说明。基本功能shared_ptr提供了一个管理内存的简单有效的方法。shared_ptr能在以下方面给开发提供便利:1、 使用shared_ptr能有效的解决忘记释放内存带来的内存泄漏问题。同时通过自定义删除器功能还能广泛的用于任何需要”释放”的资源...转载 2019-05-31 21:57:15 · 10189 阅读 · 0 评论 -
C++类中的对象在内存中的存放方式
(转自) http://blog.csdn.net/zhangliang_218/article/details/5544802现看下面的一个类 Class A { Pulic: A(); Int a; Int b; Int sun(int a1,int b1)// 计算 2 个数的和 { Result a1+b1; } }; 调用的时候转载 2012-03-28 20:50:27 · 6699 阅读 · 2 评论