
C++
学习C++的一些笔记
a_cainiaoTxl
坚持不下去的时候,想想自己离目标还有多远。
展开
-
C++中const引用的初始化
初始化const引用时允许用任意表达式作为初始值,只要该表达式的结果能转化成引用的类型即可。允许为一个常量引用绑定非常量的对象、字面值、甚至是一个表达式:int i = 42;const int &r1 = i; //允许将cont int&绑定到普通int对象上const int &r2 = 42; //正确:绑定到字面值const int &r3 = r1 * 2; //正确:绑定到表达式int &r4 = r1 * 2;原创 2022-02-10 09:52:29 · 1182 阅读 · 0 评论 -
C++表达式的优先级、结合率和求值顺序
表达式运算对象的求值顺序与优先级和结合率无关,在一条形如f() + g() * h() + j() 的表达式中:优先级规定,g()的返回值和h()的返回值相乘。 结合率规定,f()的返回值先与g()和h()的乘积相加,所得结果再与j()的返回值相加。 对于这些函数的调用顺序没有明确规定。如果f,g,h,j是无关函数,它们既不会改变同一对象的状态也不执行IO操作,那么函数的调用顺序不会影响表达式的结果。反之,如果其中某几个函数影响同一个对象,则它是一条错误的表达式,其结果是未定义的。举例:&原创 2021-07-19 10:14:06 · 386 阅读 · 0 评论 -
mfc 不要在OnPaint函数里面使用CDC
在对话框里面添加WM_PAINT消息的响应函数OnPaint之后,在函数里面添加了一个CClientDC对象,然后运行之后就发现对话框直接卡死了。代码如下:void CSettingDlg::OnPaint(){ CClientDC dc(this); CPen pen(m_nLineStyle, m_nLineWidth, m_clr); CPen* pOldPen = dc.SelectObject(&pen); CRect rect; GetDlgItem(IDC_S...原创 2021-07-17 17:22:30 · 369 阅读 · 0 评论 -
常量引用的初始化
一般来讲,引用的类型必须与其引用的对象的类型一致。但是对于常量引用是一种例外(还有一种例外是继承体系中基类对派生类的引用)。在初始化常量引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。尤其,允许为一个常量引用绑定非常量的对象、字面值、甚至是一个一般表达式:int i=23;const int &r1=i; //允许将const int& 绑定到一个普通的int对象const int &r2=23; //允许将const原创 2021-07-15 07:47:54 · 716 阅读 · 0 评论 -
MFC 按钮的鼠标移动事件
对话框CDialog类的WM_MOUSEMOVE事件(鼠标移动事件)处理当鼠标在对话框上移动时的操作,如果要求程序在鼠标移动到某个Button上时做出响应,一种直接的想法是在对话框的事件处理程序中根据鼠标的位置判断,如果鼠标位置在按钮上面,然后做出响应。但是Dialog中不能响应控件上的鼠标事件,Dialog中只能响应没有控件地方的鼠标 事件。 要响应按钮上的鼠标移动事件,要自己重写按钮类,在重写的类中响应WM_MOUSEMOVE消息,然后给按钮绑定重写类型的变量。...原创 2021-07-13 18:25:16 · 2383 阅读 · 0 评论 -
int与CString互转
int转CStringint port = 8080; CString tempPort;tempPort.Format(_T("%d"), port ); //Use Unicode Character SetCString转int CString strData = “8888”int data = _ttoi(strData)使用 Unicode 字符,用_ttoi(),在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译...转载 2021-07-13 09:51:57 · 4684 阅读 · 0 评论 -
VC include文件名大小写
VC include文件名不区分大小写,Linux下C/C++文件名区分大小写。原创 2021-07-12 16:52:27 · 554 阅读 · 0 评论 -
sizeof运算符
sizeof运算符返回一条表达式或一个类型名字所占的字节数。满足右结合律,得到一个size_t类型(无符号整数)的常量表达式(constexpr)。形式如下: sizeof (type) sizeof exprsizeof并不实际计算其运算对象的值,运算结果部分地依赖于其作用的类型:对char或者类型为char的表达式执行sizeof运算,结果为1。 对引用类型执行sizeof运算得到被引用对象所占空间的大小。 对指针执行sizeof运算得到指针本身所占用空间的大小。...原创 2020-09-11 21:42:31 · 348 阅读 · 0 评论 -
转义序列
有两类字符程序员不能直接使用:一类是不可打印(noprintable)的字符,如退格或其他控制字符,因为它们没有可视的图符;另一类是在C++语言中有特殊含义的字符(单引号、问好、反斜线)。在这些情况下需要用到转义序列(escape sequence):换行符 \n 横向制表符 \t 报警(响铃)符 \a纵向制表符 \v 退格符 \b ...原创 2020-09-09 12:08:23 · 1120 阅读 · 0 评论 -
算术类型的类型转换
类型所能表示的值的范围决定了转换的过程:当把一个非bool类型的算术值赋值给bool类型时,0转换为false,否则转换为true。 当把一个bool值赋给非bool类型时,false转换薇0,true转换为1。 当把一个浮点数赋给整数类型时,仅保留整数部分。 当把一个整数值赋给浮点类型时,小数部分记为0。如果该整数所占空间超过了浮点类型的容量,精度可能有损失。 当给无符号类型赋一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。比如,8比特大小的unsigned cha原创 2020-09-09 11:15:01 · 375 阅读 · 0 评论 -
Windows下cmd标准输入输出重定向[转]
Command 功能 command > filename 把标准输出重定向到一个文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件 command 2 > filename 把标准错误重定向到一个文件中转载 2020-06-28 23:55:54 · 1752 阅读 · 0 评论 -
如何从键盘向程序输入文件结束符(end-of-file)
当使用一个istream对象作为条件时,其效果是检测流的对象。如果是有效的流,即流未遇到错误,那么检测成功。当遇到文件结束符(end-of-file),或者遇到一个无效输入时,istream的对象会变成无效,从而使条件变为假。#include<iostream>int main(int argc,char *argv[]){ while(std::cin>>value) { std::cout<<value<<std原创 2020-06-28 18:29:21 · 771 阅读 · 0 评论