C++综合笔记
2008-07-24 00:40
190 查看
作者:fbysss
msn:jameslastchina@hotmail.com
blog:blog.csdn.net/fbysss
声明:本文由fbysss整理编写,转载请注明出处
关键字:java基础
一、基础知识
如何记住cin和cout之后符号的方向?
方法:将cin 视为键盘或者输入设备的名称,并将cout想象为屏幕或者输出设备的名称。
cin >> strInput 数据将从键盘向变量strInput移动,所以箭头要从cin指向变量。
cout << strInput 数据从变量strInput向屏幕移动,所以箭头指向cout。
cout << “hello” 同理。
#include <iostream>
using namespace std;//这句话的作用是:如果不用这句话,某些操作或者变量前面就必须加上std前缀。
比如std::cout或std::cin,而使用了这句,就不用加了。有点像java5的import static .而std对应于package。
不过using namespace std还有一个强大的地方在于其可以用在函数内部:
比如
double area(double radius){
using namespace std;
return (PI*pow (radius,2);
}
#include <iostream>
//using namespace std;
int main(){
std::cout<< "hello word/n";
return 0;
}
很显然,这句话是不能修改的。需要std命名空间的时候,std就是std,而不能是其他。
老版本的c++编译器要求使用iostream.h。但是新的c++标准已经不支持.h文件的include(据说)
cin<<va<<vb 输入两个变量。
几个操作符的区别::,.,->
::是作用域解析操作符,前面跟类或者命名空间。
.和->是对象操作符,前面是对象,其中->表示前面是一个对象指针。
Student s1, *ps;
s1是对象,ps是指向对象的指针.
s1.print
(*ps).print
ps->print
这三个等价
printf相关
TRACE("/n%f/n",5);
TRACE("%f/n",5.0);
TRACE("%d/n",5.0);
TRACE("%d/n",5);
TRACE("%d,%d/n",5.0,5);//由于前面的错误导致了后面的错误
输出结果:
0.000000
5.000000
0
5
0,1075052544
printf ,sprintf等都有同样的问题。
使用时一定要小心,注意类型匹配。
参考讨论:
http://zhidao.baidu.com/question/51797899.html?fr=qrl
二、VC相关
如何打印调试信息?
使用TRACE函数,格式跟printf一样。只在debug模式有效,release时无效,输出结果在“debug”窗口查看
CString为何有时在vc调试时无法查看值?rebuild all即可。
如何修改vector元素值?
直接赋值是不可以的。
使用指针,比如CvPoint3D32f * OnePoint = &vctCoord3DPoints[selIndex];
OnePoint.x = 10;
OnePoint.y = 12;
OnePoint.z = 15;
如何在debug时查看vector的元素值?vctCoord3DPoints[0]这样的方式是行不通的,会提示
CXX0058: Error: overloaded operator not found
解决办法是:在调试窗口中输入变量(vctCoord3DPoints._First)[0]
注意:vector类提定义了三个Iterator:_Last、_First和_End,但是是保护成员,外部无法访问。
收藏blog:
http://blog.csdn.net/yangsen2016/archive/2007/06/04/1636996.aspx
msn:jameslastchina@hotmail.com
blog:blog.csdn.net/fbysss
声明:本文由fbysss整理编写,转载请注明出处
关键字:java基础
一、基础知识
如何记住cin和cout之后符号的方向?
方法:将cin 视为键盘或者输入设备的名称,并将cout想象为屏幕或者输出设备的名称。
cin >> strInput 数据将从键盘向变量strInput移动,所以箭头要从cin指向变量。
cout << strInput 数据从变量strInput向屏幕移动,所以箭头指向cout。
cout << “hello” 同理。
#include <iostream>
using namespace std;//这句话的作用是:如果不用这句话,某些操作或者变量前面就必须加上std前缀。
比如std::cout或std::cin,而使用了这句,就不用加了。有点像java5的import static .而std对应于package。
不过using namespace std还有一个强大的地方在于其可以用在函数内部:
比如
double area(double radius){
using namespace std;
return (PI*pow (radius,2);
}
#include <iostream>
//using namespace std;
int main(){
std::cout<< "hello word/n";
return 0;
}
很显然,这句话是不能修改的。需要std命名空间的时候,std就是std,而不能是其他。
老版本的c++编译器要求使用iostream.h。但是新的c++标准已经不支持.h文件的include(据说)
cin<<va<<vb 输入两个变量。
几个操作符的区别::,.,->
::是作用域解析操作符,前面跟类或者命名空间。
.和->是对象操作符,前面是对象,其中->表示前面是一个对象指针。
Student s1, *ps;
s1是对象,ps是指向对象的指针.
s1.print
(*ps).print
ps->print
这三个等价
printf相关
TRACE("/n%f/n",5);
TRACE("%f/n",5.0);
TRACE("%d/n",5.0);
TRACE("%d/n",5);
TRACE("%d,%d/n",5.0,5);//由于前面的错误导致了后面的错误
输出结果:
0.000000
5.000000
0
5
0,1075052544
printf ,sprintf等都有同样的问题。
使用时一定要小心,注意类型匹配。
参考讨论:
http://zhidao.baidu.com/question/51797899.html?fr=qrl
二、VC相关
如何打印调试信息?
使用TRACE函数,格式跟printf一样。只在debug模式有效,release时无效,输出结果在“debug”窗口查看
CString为何有时在vc调试时无法查看值?rebuild all即可。
如何修改vector元素值?
直接赋值是不可以的。
使用指针,比如CvPoint3D32f * OnePoint = &vctCoord3DPoints[selIndex];
OnePoint.x = 10;
OnePoint.y = 12;
OnePoint.z = 15;
如何在debug时查看vector的元素值?vctCoord3DPoints[0]这样的方式是行不通的,会提示
CXX0058: Error: overloaded operator not found
解决办法是:在调试窗口中输入变量(vctCoord3DPoints._First)[0]
注意:vector类提定义了三个Iterator:_Last、_First和_End,但是是保护成员,外部无法访问。
收藏blog:
http://blog.csdn.net/yangsen2016/archive/2007/06/04/1636996.aspx
相关文章推荐
- c++学习笔记(十四):多态的综合运用——模拟发动报文
- c++学习笔记(十):运算符重载综合——自定义数组类
- c++学习笔记 -- 函数模板与类模板的综合运用
- 嵌入式开发之C++基础学习笔记1--综合比较HelloWorld示例
- c++学习笔记-map的使用实例(单词转换)
- C++学习笔记——sizeof 用法的详细总结及例程
- C++面向对象编程笔记(二)
- C++ 学习笔记
- 【读书笔记】【C++ Primer Plus第6版】C++ Primer Plus第6版的18个重点笔记
- boolan微专业C++课程第一讲笔记总结
- C++学习笔记1
- [置顶]C++学习笔记之模板篇
- c++对象模型笔记:struct 和 class
- 学习笔记36-C++ 智能指针
- C++:笔记:什么是对象
- C++ 学习笔记
- [C++ Primer Plus]学习笔记--浮点数的优缺点
- C++学习笔记之QT/VS编译Qrencode
- C++学习笔记1——const
- <C++Primer>第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”