主要后的c ++类声明?

时间:2013-03-31 21:00:05

标签: c++ declaration

#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之后声明了这个类,我怎么告诉编译器我的类是什么?我试过了 class Calculater;在主要之前但它不起作用。

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:5)

你不能这样写你怎么写的。编译器必须能够在使用它之前查看类的定义。您需要将您的课程放在main函数之前,或者最好放在您包含的单独的标题文件中。

答案 2 :(得分: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;
}