2009-04-13 3 views
0

안녕하세요 저는 Datatable을 C++로 다음과 같이 작성하고 있습니다.
인스턴스를 만들려고하면 추상 클래스에 대한 인스턴스를 만들 수 없어 컴파일 시간 오류가 발생합니다. 여기에 나는 어떤 추상 키워드도 usng하지 않는다.C++ (DATATABLE)로 관리 클래스를 인스턴스화하는 방법은 무엇입니까?

#include "stdio.h" 
#include "conio.h" 
#using <mscorlib.dll> 
using namespace System::Data; 
using namespace System::ComponentModel; 
using namespace System; 

[Serializable] 
public __gc class Table :public MarshalByValueComponent,public IListSource,public ISupportInitialize,public System::Runtime::Serialization:: ISerializable 

{ 
public: 
    void MakeTable(); 
void main() 
    { 
    Table *s=new Table(); 
    s->MakeTable(); 
    Console::WriteLine("Hai"); 
    printf("hello"); 
    getch(); 
    } 
}; 
void Table::MakeTable() 
{ 

    DataSet* myDataSet; 
    // Create a new DataTable. 
    DataTable* myDataTable = new DataTable(S"ParentTable"); 
    // Declare variables for DataColumn and DataRow objects. 
    DataColumn* myDataColumn; 
    DataRow* myDataRow; 

    // Create new DataColumn, set DataType, ColumnName and add to DataTable.  
    myDataColumn = new DataColumn(); 
    myDataColumn->DataType = System::Type::GetType(S"System.Int32"); 
    myDataColumn->ColumnName = S"id"; 
    myDataColumn->ReadOnly = true; 
    myDataColumn->Unique = true; 
    // Add the Column to the DataColumnCollection. 
    myDataTable->Columns->Add(myDataColumn); 

    // Create second column. 
    myDataColumn = new DataColumn(); 
    myDataColumn->DataType = System::Type::GetType(S"System.String"); 
    myDataColumn->ColumnName = S"ParentItem"; 
    myDataColumn->AutoIncrement = false; 
    myDataColumn->Caption = S"ParentItem"; 
    myDataColumn->ReadOnly = false; 
    myDataColumn->Unique = false; 
    // Add the column to the table. 
    myDataTable->Columns->Add(myDataColumn); 

    // Make the ID column the primary key column. 
    DataColumn* PrimaryKeyColumns[] = new DataColumn*[1]; 
    PrimaryKeyColumns->Item[0] = myDataTable->Columns->Item[S"id"]; 
    myDataTable->PrimaryKey = PrimaryKeyColumns; 

    // Instantiate the DataSet variable. 
    myDataSet = new DataSet(); 
    // Add the new DataTable to the DataSet. 
    myDataSet->Tables->Add(myDataTable); 

    // Create three new DataRow objects and add them to the DataTable 
    for (int i = 0; i<= 2; i++){ 
     myDataRow = myDataTable->NewRow(); 
     myDataRow->Item[S"id"] = __box(i); 
     myDataRow->Item[S"ParentItem"] = String::Format(S"ParentItem {0}", __box(i)); 
     myDataTable->Rows->Add(myDataRow); 
    } 
+0

오류는 무엇입니까? – Blorgbeard

+0

또한 다음 번에 코드를 게시 할 때 4 칸 씩 나눠 보거나 그냥 강조 표시하고 편집기 툴바에서 '101010'버튼을 클릭하십시오. – Blorgbeard

답변

0

당신은 아마 (IListSource는 GetList 방법을 필요로) 당신이 누락 된 메소드를 구현 (또는 서브 클래스 다음 구현)까지 그러므로 클래스는 추상적 인 당신의 인터페이스의 멤버를 구현하지 않았다.

관련 문제