注意:我使用的是 Visual Studio 2010。
这里有两个重要的类,日期和目录。
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
构造函数就像你想象的那样工作。现在,我真的是 C++ 新手,所以我什至无法理解我收到的错误消息。如果我尝试使用默认构造函数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)
.