using namespace std;
class File{
string path;
public:
File(){}
File(const string& path):path(path){ // 不能够有默认值,这样就和第一个会存在重复的情况
cout<<"创建文件"<}
};
int main()
{
File *p1=new File();
File *p2=new File("/etc/passwd");
File *p3=new File[3];
delete [] p3;p3=NULL;
delete p1;p1=NULL;
delete p2;p2=NULL;
}
第一处是包含的头文件有问题
#include//对应于C语言中的#include
#inlcude//用string就必须包含这个头文件
第二个是构造函数的问题,两个构造函数要么把第一个去掉,要么把第二个的缺省参数去掉,要不然会造成二义性。
#include
//#include
#include
using namespace std;
class File {
string path;
public:
//File() {}
File(const string& path = "无名"):path(path) {cout << "创建文件: " << path << endl;}
};
int main()
{
File *p1 = new File;
File *p2 = new File("/etc/passwd");
File *p3 = new File[3];
delete []p3; p3 = NULL;
delete p2; p2 = NULL;
delete p1; p1 = NULL;
return 0;
}