#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;在主要之前但它不起作用。
答案 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;
}