“在构造函数中输入'int'意外”,找不到为什么?

时间:2012-06-04 13:45:13

标签: visual-studio class constructor c++-cli managed-c++

我对C ++及其语法很陌生。我以前用C#编程,但想过试试C ++。

我在visual studio中创建了一个ClassLibrary,并希望为它添加一些类。我知道这是Managed C ++。

但是我无法理解为什么我会一直收到这些错误:

Error C2062: type 'int' unexpected
Error C2143: syntax error: messing ; before '{'
Error C2447: '{' : missing function header (old-style formal list?)

这是我的Header文件:

// LibraryLib.h

#pragma once
#include <string>
using namespace System;

namespace LibraryLib {

public enum EntryType {Book, Newspaper};

public ref class Entry
{   
public:
    int id;
    int year;
    String ^ title;
    EntryType type;

    Entry(int Id, int Year, String ^ Title, EntryType Type);

};
}

这是我的cpp文件:

// This is the main DLL file.

#include "stdafx.h"
#include "LibraryLib.h"

namespace LibraryLib {

LibraryLib::Entry(int Id, int Year, String ^ Title, EntryType Type) // line of errors   
{
    id = Id;
    year = Year;
    title = Title;
    type = Type;
}
}

在我要在cpp文件中实现构造函数的行上抛出了3个错误。

我希望有人可以指出我做错了什么。

谢谢!

2 个答案:

答案 0 :(得分:3)

您没有对构造函数进行限定。你需要另一个Entry::

Entry::Entry(int Id, int Year, String ^ Title, EntryType Type)

答案 1 :(得分:1)

为构造函数代码尝试Entry :: Entry(int Id,int Year,String ^ Title,EntryType Type)