知识点扫盲
来源:互联网 发布:提高智商知乎 编辑:程序博客网 时间:2024/06/11 20:59
1.explicit:
C++中, 单参数构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。
class Test1
{
public:
Test1(int n)
{
num=n;
}//普通构造函数
private:
int num;
};
class Test2
{
public:
explicit Test2(int n)
{
num=n;
}//explicit(显式)构造函数
private:
int num;
};
int main()
{
Test1 t1=12;//隐式调用其构造函数,成功
Test2 t2=12;//编译错误,不能隐式调用其构造函数
Test2 t2(12);//显式调用成功
return 0;
}
explict 为程序员提供一种方法,使得他们能够制止“单一参数的构造函数被当做一个conversion运算符”;
如:cin.operator int();
2..suo文件
suo(solution user options)是一种文件的格式。*.suo 解决方案用户选项,记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含用户所做的自定义设置。比如VS布局以及项目最后编译的而又没有关掉的文件用于下次打开时用。
其中,VS布局包括:监视器1234的变量列表、断点标记及开关状态、输出窗口错误窗口等的分布及其悬浮状态,还有项目卸载状态标记。
.suo文件偶尔会被破坏,从而在构建和编辑应用程序时出现意想不到的结果。如果Visual Studio对于每个解决方案不稳定,就应删除.suo文件。下次打开解决方案时,Visual Studio会重建它。
3用C++流成员函数put输出单个字符
在程序中一般用cout和插入运算符“<<”实现输出,cout流在内存中有相应的缓冲区。有时用户还有特殊的输出要求,例如只输出一个字符。ostream类除了提供上面介绍过的用于格式控制的成员函数外,还提供了专用于输出单个字符的成员函数put。如:
cout.put('a');
调用该函数的结果是在屏幕上显示一个字符a。put函数的参数可以是字符或字符的ASCII代码(也可以是一个整型表达式)。如
cout.put(65 + 32);
也显示字符a,因为97是字符a的ASCII代码。
可以在一个语句中连续调用put函数。如:
cout.put(71).put(79).put(79). put(68).put('\n');
在屏幕上显示GOOD。
http://c.biancheng.net/cpp/biancheng/view/254.html
4.C++中ends和flush
ends函数 终止字符串
flush函数 刷新缓冲区
endl函数 终止一行并刷新缓冲区
http://blog.163.com/muren20062094@yeah/blog/static/1618444162011643389915/
5. qDebug
qDebug() << strError; //输出
http://blog.csdn.net/dbzhang800/article/details/6460229
此篇博文还有很多没有看懂之处
<<有两个用处一是输出;二是右移位运算符
<<(左移)、>>(带符号右移)和>>>(无符号右移)
6.左值与右值
lvalue 就是 left value 左值
rvalue 就是 right value 右值
之所以叫这么个名字, 是因为 左值 可以放在 = 的左边, 而右值不可以.
int a;
const int b = 3;
a = 10; // a可以放在=的左边, 也就是说可以赋值, 那么就是"左值"
b = 10; // const 类型不可以赋值, 也就是说不可以放在=的左边, 所以是"右值"
左值包括所有的 "非const" 变量.
右值包括所有"不能赋值"的东西, 包括const 变量, 临时变量, 常数等等.
b+c 返回临时对象, 右值, 所以你不可以 b+c = x;
++a 前 ++和--都返回本身的引用, 属于左值, 所以可以(++a) = x; 虽然这么写没有意义.
a++ 后 ++和--都返回临时变量, 是"右值"
是左值还是右值, 只要看他能不能被赋值就可以了.
至于const对象, 你非要用强制类型转换让他变成左值也不是不可以..
lvalue:指的是内存中持续存储数据的一个地址。
rvalue:临时存储的表达式结果。
以下三个表达式:
a=b+c;
b=++a;
c=a++;
其中:语句1:表达式"b+c"是一个rvalue.
语句2:表达式"++a"是一个lvalue;
语句3:表达式"a++"是一个rvalue;
7.&&
c++中也会用&&来指定一个rvalue的引用类型。//右值引用
例如:int && ex_1=2*x+3
在这里rvalue初始化表达式为引用表达式2*x+3的值,它是一个临时值,即rvalue。lvalue则不能这么做。但在函数中它的作用才凸显出来,它可以完成引用形参类型,能够使表达式作为实参来调用函数。如果直接用lvalue则不能这么做。
c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右侧,整个表达式为零。
&是位与,两边是两个数 如: 3&5 结果是1, 3&7结果是3
&&是逻辑与,两边是两个逻辑表达式 如: 1<3 && 2<3 结果是1,1>3 && 2<3 结果是0
- 知识点扫盲
- 知识点扫盲
- 知识点扫盲
- 一些Java的知识点扫盲
- Maven知识点扫盲(一)
- 知识点扫盲(tcp,QList),dji
- 计算机网络知识点(谢希仁版教材) (扫盲帖)
- Maven知识点扫盲(二)依赖管理
- 扫盲
- 扫盲
- 网络广告购买方式,RTB, DSP, AdExchange扫盲知识点汇总
- 网络广告购买方式,RTB, DSP, AdExchange扫盲知识点汇总
- 网络广告购买方式,RTB, DSP, AdExchange扫盲知识点汇总
- C#知识点扫盲——GC(Garbage Collector)
- Unity面试题整理(4)--Socket知识点扫盲
- VMware 虚拟机的虚拟磁盘编程知识点扫盲之一
- VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
- 概念扫盲(对,这是发生在正文之前的知识点。)
- linux内核启动过程分析转载
- NSKeyedArchiver/unArchiver序列化自定义复合模型(模型包含模型)
- 重构二叉树
- objective-c和java
- Flex datagrid单元格合并
- 知识点扫盲
- 视频会议图像因为qp值造成的灰屏的bug处理过程
- 动态代理在mybatis接口式编程中的应用
- php深入学习笔记二( 函数内置函数 )
- stm32需要的手册
- RPDB-让PDB(Python调试工具)支持远程调试功能
- 向注册表中注册文件类型
- Android中触摸事件传递过程
- add groups 配置