2012-03-25 95 views
0

高,夥計!對不起,問你這個問題,但我找不到導致錯誤的原因。另外,我是Visual C++/CLI的新手,所以我知道我的代碼可以使用一些拋光。 總之,我試圖做的是從表單中捕獲數據來構建一個類。 我會很感激任何幫助。提前致謝。C++/cli錯誤C2143:語法錯誤:缺少';'之前'。'

我的代碼:

// Form4A.h 
#pragma once 
# include "Tutors.h" 
namespace SisPro 
{ 
    //.... more code 

    public ref class Form4A : public System::Windows::Forms::Form 
    { 
    #pragma region Windows Form Designer generated code 

    //.... more code 

    #pragma endregion 
    private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) 
    { 
     String^m1 = comboBox14->SelectedItem->ToString(); 
     String^m2 = comboBox19->SelectedItem->ToString(); 
     String^m3 = comboBox20->SelectedItem->ToString(); 
     Tutors.add_tutor(m1, m2, m3);// ERROR C2143 
    } 
    }; 
} 

SOMWHERE ELSE:

//Tutors.h 
using namespace System; 
public ref class Tutors 
{ 
    public: 
    Tutors(); 
    void add_tutor(String^m1, String^m2, String^m3) 
    private: 
    String^ID; 
    String^LASTNAME; 
    String^NAME; 
}; 

// tutors.cpp 
#include "stdafx.h" 
#include <iostream> 
#include <iomanip> 
#include "Tutores.h" 
Tutors::Tutors() 
{ 
    ID  = ""; 
    LASTNAME = ""; 
    NAME  = ""; 
} 
void Tutors::add_tutor(String^m1, String^m2, String^m3) 
{ 
    ID  = m1; 
    LASTNAME = m2; 
    NAME  = m3; 
    return; 
} 
+2

如果沒有'Tutors'實例,則不能調用'add_tutor'。 'add_tutor'的實現是沒有意義的,以及類Tutors本身:它代表一個單一的導師,也不是多個名字所暗示的多個導師。如果你想正確實現'add_tutor',你需要在某個地方有一個導師集合。 – dasblinkenlight 2012-03-25 13:38:21

+0

@dasblinkenlight,我認爲你應該將其作爲答案發布。 – svick 2012-03-25 14:08:20

+0

@svick我沒有提供足夠的信息來解決這個問題,所以我把它作爲評論發佈。我希望這個評論能爲OP提供更多的信息來更新他的問題,然後我會發布更全面的內容。 – dasblinkenlight 2012-03-25 15:38:53

回答

0

添加字段導師在課堂上Form4A。並在構造函數中添加字段初始化。

public ref class Form4A : public System::Windows::Forms::Form 
{ 
    #pragma region Windows Form Designer generated code 

    //.... more code 

    Form4A() 
    { 
    //.. 

    this->Tutors = gcnew Tutors(); 
    } 


    #pragma endregion 

    Tutors^ Tutors; 

    private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) 
    { 
    String^m1 = comboBox14->SelectedItem->ToString(); 
    String^m2 = comboBox19->SelectedItem->ToString(); 
    String^m3 = comboBox20->SelectedItem->ToString(); 
    Tutors.add_tutor(m1, m2, m3);// ERROR C2143 
    } 
}; 
相關問題