Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?




我是C ++的新手(您可能会问到这个问题),但遇到了问题。我有两个文件:Drives.h和Drives.cpp

驱动器

#pragma once

enum MountMode
{
    User,
    System,
    Both,
    Auto
};

class Drive
{
public:
    Drive(void);
    ~Drive(void);

    BOOL Mount(MountMode mode);
    VOID Unmount(void);
    BOOL IsConnected(void);

    static char* DeviceName;
    static char* DrivePath;
};

class Drives
{
public:
    Drives(void);
    ~Drives(void);
};


和我的Drives.cpp:

#include "stdafx.h"
#include "Drives.h"

Drives::Drives(void)
{
    Drive USB0; //Error happening here
}

Drives::~Drives(void)
{
}


该错误表明Drives类的构造函数,析构函数和IsConnected()都是未解析的外部对象。我不确定我缺少什么,因为我像在cplusplus.com上设置此类一样

提前致谢

最佳答案

如错误消息所述,您尚未实现Drive的构造函数和析构函数:

Drive::Drive(void) {
    ...
}

Drive::~Drive(void) {
    ...
}


创建类类型的局部变量(如您在Drive USB0;中所做的那样)将调用该类的构造函数,而析构函数将在变量作用域的末尾被调用。因此错误。

您还应该实现Drive的其他功能-在类声明中声明一个函数本质上是保证该函数将在某个地方实现。

关于c++ - 未解析的外部符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6643903/

10-12 01:34