注意:我使用的是 Visual Studio 2010。
这里有两个重要的类,Date 和 Directory。
class Date
{
private:
int month, day, year;
public:
Date();
Date(int month, int day, int year);
};
class Directory : public [Superclass]
{
private:
File* fileContents[50];
Directory* dirContents[5];
public:
Directory();
Directory(char* name,
long size,
Date dateCreated,
Date dateModified,
Date dateAccessed,
int attributes);
};
我进一步定义了构造函数 -Date
构造函数的工作方式就像你想象的那样。现在我reallyC++ 新手,所以我什至无法理解我收到的错误消息。如果我尝试使用默认构造函数Directory
,我收到此错误消息:
error LNK2019: unresolved external symbol "class Directory __cdecl d(void)" (?d@@YA?AVDirectory@@XZ) referenced in function _main
如果我尝试使用 3 来实现Date
对象,使用以下代码:
int main()
{
Date d1();
Date d2();
Date d3();
Directory d("Hello", 12, d1, d2, d3, 0);
cout << d;
}
这些是我的错误消息:
error C2664: 'Directory::Directory(char *,long,Date,Date,Date,int)' : cannot convert parameter 3 from 'Date (__cdecl *)(void)' to 'Date'
智能感知:no instance of constructor "Directory::Directory" matches the argument list
编辑:因此,为了持续努力使我的意义为零,VS 决定在三个时很好地编译我的程序Date
参数是用创建的Date da[3]
构造函数的参数是("Hello", 12, d[0], d[1], d[2], 0)
.