首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学c++,一些地方不理解,希望大家帮小弟我解答一下

2012-03-01 
初学c++,一些地方不理解,希望大家帮我解答一下。最近在学习c++,看thinkinginc++,看到第二章。书上的一些代码

初学c++,一些地方不理解,希望大家帮我解答一下。
最近在学习c++,看thinking   in   c++,看到第二章。书上的一些代码看不懂,请各位指教。

#include   <iostream>
#include   <fstream>
#include   <vector>

using   namespace   std;
int   main()  
{
vector <string>   v;
ifstream   in( "main.cpp ");
string   line;
while(getline(in,line)){
v.push_back(line);
}

for(unsigned   int   i   =   0;   i   <   v.size();   i++){
cout   < <   v[i]   < <   endl;
}

return   0;
}

问题一:v是怎么出来的?
在java中,定义一个变量分配空间,要用   Vector   v   =   new   Vector();   先生成一个对象然后赋给v。
难道在c++中不用赋值?   声明以下就能用了?

问题二:   ifstream   in( "main.cpp ");   是定义了一个ifstream类型的名叫in的变量吗?
在c++中用这样的语法定义变量: <type>   <var_name> (xxx)   ?
c++中好像也有用 <type>   <var_name>   =   new   <type> 来定义变量的方法。
这两种方法有什么区别呢?

问题三:我怎么才能知道getline是什么,endl是什么?,vector还有哪些函数?
我该去哪里找他们的文档?

[解决办法]
1,如果不是作为类的成员变量,声明一下就是调用默认构造函数
2. 是的,C++ 里的new多是跟指针联系在一起,int *i = new int(10);
3. 去下个库函数手册,或者如果装vs的话,直接用msdn也很方便
[解决办法]
问题1:在C++中,只要变量一定义,编译器就会给它分配空间。这里的应用与Java是不同的。
问题2:ifstream in( "main.cpp ");是定义一个ifstream类型的变量in。这里写成in( "main.cpp ");是由于ifstream为一种这样的重载的构造函数,这里的参数 "main.cpp "是一个文件名。这种 <type> <var_name> = new <type> 形式的表达式,我现在没有见到过, <type> * <var_name> = new <type> ---如比形式是定义一个指针,并为指针变量赋初值。
问题3:getline是读取一行字符串。endl是换行。vector是一个顺序存储的容器。这些在stl的相关文档中都有说明。有兴趣可以看看关于STL方面的书,这方面的书还是很多的。

热点排行