我想应该是你的MSDN的安装文件内的压缩文件损坏了,你可以装VS2005.NET 和相应的MSDN8.0啊!
呵呵!
你的问题我也有过!
-----------------------
Cyberkdll
你是不是用VC.net第一只碟来启动安装MSDN的程序的???VC.NET总共有六只碟哦。
建议初学C++的不要用VC.NET 2005,因为VC2005为C++优化了学多东西。例如返回值命名优化(也就是说反回对象的时候(不是*this),vc2005会优化过之后,不会调用copy constructor)
例如:
#include<iostream>
using namespace std;
class example
{
public:
example(int val):_val(val){}
example(){}
example(const example& e):_val(e.GetVal()){ cout<<"hello copy constructor"<<endl;}
friend example operator +(const example &left, const example &right)
{
//return example(left._val + right._val); //这个是普通C++的优化方式
example e;
e._val = left._val + right._val;
return e; //这样就会调用copy constructor
//但是vc 2005会自动优化,使其不会调用copy constructor
//这个有好有不好,如果有些功能是靠copy constructor来完成那就惨了,
//建议初学者不要用vc2005。
}
int GetVal()const { return _val;}
friend ostream &operator <<(ostream &out, example & e)
{
out<<e._val;
return out;
}
private:
int _val;
};
int main()
{
example e(100);
example e2(100);
example e3= e + e2;//由于是先执行 operator+(e,e2),所以之后就执行缺省的operator =,不是copy constructor,c++规定
//自动执行的转换函数在同一个语句,如果已经执行了一次,第一次执行的就是缺省的行为
cout<<e3<<endl;
}
[此贴子已经被作者于2006-4-26 10:30:16编辑过]
你首先启动VC.NET的第一只碟,然后选择选项3,产品文档,之后系统会提示放入MSDN第一只碟。如果不是这样安装,MSDN就是垃圾一个,根本就查不了
呵呵,今天下了个2005,不过没下到msdn,郁闷,问题还是没解决,又重装了一下,我有个朋友说是硬件问题,我晕还有这种事?从来没听说过,系统和vc,msdn我都重装过N遍了。我在另外一台机器上也是装的这个版本重来没出错,单位上也都用的这个版本,就我一个有着问题,难道让我用6.0?