4
#include "stdafx.h"
using namespace System;

class Calculater; // how to tell the compiler that the class is down there? 

int main(array<System::String ^> ^args)
{
    ::Calculater *calculater = new Calculater();

    return 0;
}

class Calculater
{
public:
    Calculater()
    {
    }
    ~Calculater()
    {
    }

};

我在 main 之后声明了类,我如何告诉编译器我的类是什么?我试过
类Calculator;在 main 之前,但它不起作用。

4

3 回答 3

6

你不能按照你写的方式去做。编译器必须能够看到类的定义才能使用它。您需要将类放在main函数之前,或者最好放在包含的单独头文件中。

于 2013-03-31T21:02:41.880 回答
6

您可以在预先声明后获得指向计算器的指针。问题在于构造函数 ( new Calculator()),此时尚未定义。你可以这样做:

主要之前:

class Calculator { // defines the class in advance
public:
    Calculator(); // defines the constructor in advance
    ~Calculator(); // defines the destructor in advance
};

主线之后:

Calculator::Calculator(){ // now implement the constructor
}
Calculator::~Calculator(){ // and destructor
}
于 2013-03-31T21:07:08.973 回答
1

将类定义放在 main 之前:

#include "stdafx.h"
using namespace System;

class Calculater
{
public:
    Calculater()
    {
    }
    ~Calculater()
    {
    }

};

int main(array<System::String ^> ^args)
{
    Calculater *calculater = new Calculater();

    return 0;
}
于 2013-03-31T21:04:13.880 回答