您的位置:首页 > 编程语言 > C语言/C++

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: