2016-12-27 85 views
0

我有以下类:的Visual C++ 2010错误:LNK2020无法解析令牌

public ref class Form1 : public System::Windows::Forms::Form 
{ 
//[...] 
protected: 
System::Void label1_Click(System::Object^ sender, System::EventArgs^ e); 
}; 

public ref class Functions : public Form1 
{ 
protected: 
void Example() {} 
}; 

public ref class Handlers : public Functions 
{ 
private: 
    System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) 
    { 
    Example(); 
    } 
}; 

正如你可以看到我想我的extern方法引入额外的类。 错误是:

1>Milionerzy.obj : error LNK2020: unresolved token (06000004) Milionerzy.Form1::label1_Click

什么是错?

+0

您需要为'Form1中:: label1_Click'提供的定义或声明它纯虚。 –

+0

我正在尝试纯虚拟类Form1 [code] virtual System :: Void label1_Click(System :: Object^sender,System :: EventArgs^e)= 0; [/ code] 而我有很多错误。我使用这个解决方案: [link] http://stackoverflow.com/questions/2652198/difference-between-a-virtual-function-and-a-pure-virtual-function [/ link] – Zomfire

+0

1> c :\ users \ michal \ documents \ visual studio 2010 \ projects \ milionerzy \ milionerzy \ Form1.h(505):参见'Milionerzy :: Form1 :: label1_Click'的声明1''void Milionerzy :: Form1 :: label2_Click System :: Object ^,System :: EventArgs ^)':is abstract – Zomfire

回答

0

您应该从Form1中删除label1_Click。根本没有必要处理label1点击事件,因为您正在考虑将其设为纯虚拟。只要你能够处理它。

如果你想多态性处理器声明另一个纯虚函数是这样的:

public ref class Form1 abstract: public System::Windows::Forms::Form 
{ 
//[...] 
protected: 
    virtual void OnLabel1Click()=0; 
}; 

public ref class Functions : public Form1 
{ 
protected: 
    void Example() 
    { 
    } 
    virtual void OnLabel1Click() override 
    { 
     Example(); 
    } 
}; 

public ref class Handlers : public Functions 
{ 
private: 
    System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) 
    { 
     OnLabel1Click(); 
    } 
}; 
+0

感谢您的回复。但是在这种情况下,我必须将每个标签(或其他元素)的所有设置放入第一个类中,以便在设计中看到它。 这必须插入(public System :: Windows :: Forms :: Form)子类中。我不想要它。 – Zomfire

+0

在这种情况下,删除所有抽象属性并处理Form1中的label1单击事件,调用虚拟(但不是纯粹的)OnLabelClick。因此,Form1 :: OnLabelClick将不会执行任何操作,您将在Handlers类中覆盖它。 – GeorgeT

相关问题