
C++
小公鸡卡哇伊呀~
1232312312
展开
-
[C++] 什么是回调 (Callback)
回调就是一段以参数传给其他代码的可执行代码。Note: Most of the answers cover function pointers which is one possibility to achieve "callback" logic in C++, but as of today not the most favourable one I think. Callback...转载 2018-05-11 13:19:20 · 1966 阅读 · 0 评论 -
VS C++ 中如何修改文件名称
忘了在哪看到的, 代码如下:std::wstring newFilename = tempFileName.c_str();newFilename += _T("new.txt");if (!MoveFileEx(tempFileName.c_str(), newFilename.c_str(), flags )) { //error handling if call fails...原创 2018-05-28 13:43:30 · 2660 阅读 · 0 评论 -
[C++] 划分字符串
比较简洁的写法:#include <iostream>#include <string>#include <sstream>#include <vector>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ // the delimiter is . and c...原创 2018-05-28 13:51:15 · 484 阅读 · 0 评论 -
[C++] 实现多态的一个例子
代码:#include <iostream>using namespace std;class Animal{public: virtual void makeSound() { cout << "rawr" << endl; }};class Dog : public Animal{public: virtual voi...翻译 2018-05-28 14:06:47 · 3178 阅读 · 2 评论 -
[C++] 用于格式化输出的代码
Sample code 如下,使用setw()函数可以设置输出格式。#include &lt;iomanip&gt;#include &lt;string&gt;#include &lt;fstream&gt;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ ofstream m_osDest; st...原创 2018-05-28 14:13:56 · 390 阅读 · 0 评论 -
[C++] 定义和声明之间的区别
A declaration introduces an identifier and describes its type, be it a type, object, or function. A declaration is what the compiler needs to accept references to that identifier. These are declaratio...转载 2018-05-28 14:42:57 · 257 阅读 · 0 评论 -
[C++] 前向声明(forward declaration)
[1] https://stackoverflow.com/questions/4926105/what-is-forward-declaration-in-c [2] https://stackoverflow.com/questions/553682/when-can-i-use-a-forward-declaration [3] https://stackoverflow.com/q...原创 2018-06-11 11:40:11 · 7897 阅读 · 0 评论 -
[C++] 获取某一范围内的随机数
code 如下:#include &lt;cstdlib&gt;std::string GetRandom(double fLow, double fHigh) { double fRandom; fRandom = (double)rand()/((double)RAND_MAX + (double)1); fRandom *= (fHigh - fLow);...原创 2018-05-30 11:28:21 · 3470 阅读 · 0 评论 -
[C++] 构造函数和复制控制
111原创 2018-06-07 17:53:03 · 239 阅读 · 0 评论 -
[C++] 刪除文件
方法1. 使用命令del, 例如: system("del d:\\tmp\\*.txt");原创 2018-06-11 09:21:09 · 313 阅读 · 0 评论 -
[C++] 使用MFC获取PC硬件配置信息
111原创 2018-06-11 10:48:46 · 3452 阅读 · 6 评论 -
[C++] 什么是智能指针(Smart Pointer)以及何时使用
使用Smart Pointer的目的保证在异常出现后释放内存。Smart Pointer 类型:1.1 Boost1.2 STLstd::auto_ptr 等已经相当老了,新的:// unique_ptr::get vs unique_ptr::release#include &amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;gt;#include &a翻译 2018-07-16 17:07:22 · 7708 阅读 · 0 评论 -
[C++] 友元(friends)
友元声明只能出现在类定义内部,在类中的位置不限。由于友元非给予访问权限的类的成员,因此不受public, protected, private 关键字的影响。[一般而言,友元最好放在类定义的开头,或结尾处]class Screen {public: typedef std::string::size_type index; // return character at t...原创 2018-07-17 17:31:08 · 476 阅读 · 0 评论 -
[C++] 静态链接库和动态链接库的区别
假设你有下面的这样一个叫name.c的C源文件:#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt;void print_name(const char * name){ printf(&amp;amp;quot;My name is %s\n&amp;a翻译 2018-07-19 17:30:21 · 2740 阅读 · 0 评论 -
[C++] cin, cout, clog, cerr中的c是什么意思
c 代表 character,字符的意思,cout 读作 see-out, 是 **c**haracter **out**put stream 的缩写。 iostream 对应以byte(char)表示的值。[1] https://stackoverflow.com/questions/2262232/what-does-the-c-mean-in-cout-cin-cerr-and-c...原创 2018-08-28 11:41:15 · 2299 阅读 · 0 评论 -
[C++] Calling convention 调用约定
参数传递和命名约定Microsoft 专用** 利用 Visual C++ 编译器,你可以指定约定规则用于参数传递以及调用函数和被调函数之间返回值。 并非所有的约定都在所有支持的平台上可用,某些约定使用平台特定的实现。 在大多数情况下, 在特定平台上使用关键字或编译器开关指定的不受支持的约定将会被忽略,平台默认约定将会被使用。在 x86 平台上,所有参数在传递时都将加宽到 32 位。 返...原创 2018-05-28 13:37:31 · 1164 阅读 · 0 评论 -
[C++] 虚函数
在继承的关系中,用作根类的类一般定义一个虚拟析构函数 virtual destructor。virtual 关键字的目的是实现动态绑定(dynamic binding), 成员函数默认非虚拟,对非虚拟函数的调用在编译时决定。除了构造函数,任何非静态成员函数都可以是虚拟的。virtual 关键字只能用在class 里的成员函数声明中,不能用在 class body 之外的函数定义中。派生类中...原创 2018-05-28 13:25:11 · 165 阅读 · 0 评论 -
[C++] 成员函数内部可以调用 delete this 么?
例如 code:void SomeModule::doStuff(){ // in the controller, "this" object of SomeModule is the "current module" // now, if I want to switch over to a new Module, eg: controller->setWorki...原创 2018-05-07 11:10:28 · 537 阅读 · 0 评论 -
C++的版本
C++ 的各个版本,C++17 的下一个版本是 C++20YearC++ StandardInformal name1998ISO/IEC 14882:1998[20]C++982003ISO/IEC 14882:2003[21]C++032011ISO/IEC 14882:2011[22]C++11, C++0x2014ISO/IEC 14882:2014[23]C++14, C++1y2017...原创 2018-05-04 17:28:10 · 13475 阅读 · 0 评论 -
[C++] Virtual Destructor
假定有如下的两个类:class Base { // some virtual methods};class Derived : public Base { ~Derived() { // Do some important cleanup }};然后有下面的语句:Base *b = new Derived();delete b; // Here's ...原创 2018-05-04 12:44:17 · 1302 阅读 · 0 评论 -
[C++] 模板
from C++ primer, 关键字 typename 和 class没有区别。 函数模板 Function Template 的定义及使用, 可以看出,函数模板的调用方式同一般函数: // 泛型比较函数 returns 0 if the values are equal, 1 if v1 is larger, -1 if v1 is smaller template &amp;amp;amp;amp;amp;amp;amp;lt;type...原创 2018-05-18 16:04:24 · 189 阅读 · 0 评论 -
[C++] 静态类成员
静态类成员静态类成员分两种:静态成员函数和静态数据成员。静态成员是类的一部分,不是对象的一部分,独立于对象。 使用static关键字声明静态成员,定义时,不再使用此关键字。1. 静态数据成员(static data member)静态数据成员独立于对象,只和类相关。虽然如此,仍然可以通过对象、引用或对象指针间接访问静态成员。 静态数据成语能够被声明为任意类型:如const,引用,或...原创 2018-05-18 17:58:25 · 901 阅读 · 0 评论 -
[C] char a[] 和 char *p 的区别
定义一个数组,一个字符指针: char a[] = &amp;amp;amp;amp;amp;amp;amp;amp;quot;hello&amp;amp;amp;amp;amp;amp;amp;amp;quot;; char *p = &amp;amp;amp;amp;amp;amp;amp;amp;quot;hello&amp;amp;amp;amp;amp;amp;amp;amp;quot;;表达式 char *p = &原创 2018-05-14 10:31:38 · 1213 阅读 · 0 评论 -
[C++] 操作符重载
定义重载操作符(Overloaded Operator) 是有特殊名称的函数,形式为: operatorX , 例如: Sales_item operator+(const Sales_item&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;, const Sales_item&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;); 可以重载的操作符:原创 2018-05-25 15:13:02 · 1050 阅读 · 0 评论 -
[C++] char, unsigned char, signed char 区别
C++中,有3种不同的字符类型: char signed char unsigned char如果用于文本,则使用未加限定的char, 类似于 'a', '0', 'abcde' 等。它也可以是一个值,但是是当做无符号还是有符号数没有指定。如果将字符类型用作数字,那么:signed char, 范围至少为 [-127 ~ 127] 。 (一般范围是 -128...翻译 2018-05-15 17:16:47 · 4004 阅读 · 0 评论 -
[C++] Exception
1 例子: throw, try, catch当抛出(throw)对象时,异常被引发(raise)。// throws exception if both objects do not refer to the same isbnSales_item operator+(const Sales_item&amp;amp;amp; lhs, const Sales_item&amp;amp;amp; rhs){ ...原创 2018-05-22 16:20:24 · 3469 阅读 · 0 评论 -
[C++] Copy Control part 1 : 拷贝构造函数
1. 什么是拷贝构造函数(Copy Constructor)copy constructor首先是构造函数,其次,它只有一个参数,类型为该类类型的引用,且通常为常量引用(const reference)。2. 拷贝构造函数的作用:Explicitly or implicitly initialize one object from another of the same type C...原创 2018-05-23 13:19:31 · 288 阅读 · 0 评论 -
[C++] explicit 关键字
C++ 只有explicit关键字,没有implicit关键字。编译器允许解析函数的参数时,对参数作隐式转换。也就是说,编译器能够使用带单个参数的构造函数,将函数参数转换为正确的类型。带有单个形参的构造函数定义了一种由实参类型到类类型的隐式转换。下面的类带有可用于隐式转换的构造函数:class Foo{public: // single parameter constr...原创 2018-05-23 13:31:01 · 3134 阅读 · 0 评论 -
[C++] 关键字 mutable 和 volatile
mutable意思是“易变的”。 const 类型对象的mutable域可以修改, 如果通过const指针或引用访问对象,mutable域也可以修改。简而言之,使用mutable关键字将覆盖任何封闭的const语句,编译器会因为此关键字不会将对象存储于只读内存中。 (A mutable field can be changed even in an object accessed thro...原创 2018-05-28 13:04:21 · 318 阅读 · 0 评论 -
[C++] #pragma once
看到一段代码使用了 #pragma once#if !defined(STRING_MANIPULATOR_H_INCLUDED)#define STRING_MANIPULATOR_H_INCLUDED#if _MSC_VER &amp;amp;gt; 1000 #pragma once#endif // _MSC_VER &amp;amp;gt; 1000#endif // !defined(AFX_ST...原创 2018-05-23 16:26:06 · 249 阅读 · 0 评论 -
MFC USB detecting
文章目录Step 1: 创建MFC程序Step 2: 消息处理成员函数声明Step 3: 添加一行消息映射:Step 4: 添加其他函数和消息处理函数:Step 5. 其他5.1 修改项目属性,改为使用多字节字符集5.2 MFCApplication1Dlg.cpp 增加头文件使用 VS2017 运行结果示意图:Step 1: 创建MFC程序Step 2: 消息处理成员函数声明MFCA...原创 2019-08-12 21:28:35 · 420 阅读 · 2 评论