我的代码出了什么问题?我的程序不会编译

时间:2010-02-28 22:44:19

标签: c++

好的,所以我的任务是建立在书中的现有代码。我必须添加第3个框,然后计算所有3个框的总数。这是我到目前为止所写的内容,但它不会编译。请帮我找到问题所在。感谢。

我正在使用的程序是MS Visual C ++,我得到的complile错误是

  

错误C2447:'{':缺少函数头(旧式正式列表?)

引用{after my int Total_Volume line

// Structures_and_classes.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
class CBox // Class definition at global scope
{
public:
 double m_Length; // Length of a box in inches
 double m_Width; // Width of a box in inches
 double m_Height; // Height of a box in inches
};
int main();
int Total_Volume;
{
CBox box1;
CBox box2;
CBox box3;
 double boxVolume = 0.0;             // Stores the volume of a box
  box1.m_Height = 18.0;            // Define the values
  box1.m_Length = 78.0;             // of the members of
  box1.m_Width = 24.0;              // the object box1
  box2.m_Height = box1.m_Height - 10;         // Define box2     Box 2 H = 8
  box2.m_Length = box1.m_Length/2.0;          // members in    Box 2 L = 39
  box2.m_Width = 0.25*box1.m_Length;           // terms of box1  Box 2 W = 6
  box3.m_Height = box1.m_Height + 2;         // Define box3     Box 3 H = 20
  box3.m_Length = box1.m_Length - 18;          //members in    Box 3 L = 50
  box3.m_Width = box1.m_Width + 1;           //terms of box1   Box 3 W = 25 

  // Box1
  boxVolume = box1.m_Height*box1.m_Length*box1.m_Width;cout << endl;
<< "Volume of box1 = " << boxVolume;
  cout << endl;
  // Box 2
  boxVolume = box2.m_Height*box2.m_Length*box2.m_Width;cout << endl;
<< "Volume of box2 = " << boxVolume;
  cout << endl;
  // Box 3
  boxVolume = box3.m_Height*box3.m_Length*box3.m_Width;cout << endl;
<< "Volume of box3 = " << boxVolume;
  cout << endl;

//Calculate Total Volume
  Total_Volume = (box1.m_Height*box1.m_Length*box1.m_Width)+
      (box2.m_Height*box2.m_Length*box2.m_Width)+
      (box3.m_Height*box3.m_Length*box3.m_Width);

return 0;
}

6 个答案:

答案 0 :(得分:8)

变化:

int main();
int Total_Volume;
{

为:

int main()
{
    int Total_Volume;

这将解决您的直接问题,虽然我怀疑您今天还会有更多问题: - )

当前代码的实际问题是它为main定义了一个原型,然后是一个文件级变量,后面是一个裸括号,这就是为什么它抱怨缺少函数头。

可能也想考虑将您的main功能更改为以下之一:

int main (int argc, char *argv[])
int main (void)

(可能是您的第二个)因为这些是ISO C标准要求支持的两种形式。如果愿意,实现可以自由地接受其他人,但我通常更喜欢我的代码尽可能标准。我说“可能”的原因是因为它不一定需要让你的代码工作,更像是一种风格的东西。

答案 1 :(得分:3)

int main();
int Total_Volume;
{

应该是

int main()
{
  int Total_Volume;

答案 2 :(得分:1)

看起来你混淆了两行:

int main();
int Total_Volume;
{
CBox box1;
CBox box2;
CBox box3;

看起来应该是:

int main() {
  int Total_Volume;
  CBox box1;
  CBox box2;
  CBox box3;

答案 3 :(得分:0)

尝试移动

int Total_Volume;
在{

之后

答案 4 :(得分:0)

天哪我。请检查预览,并至少确保您的问题看起来像散文和一些代码。 编辑好吧,让我们假设这是一个已经解决的故障。我的其余部分仍然有效。

一点点挖掘表明第一个问题是你没有正确定义的main()函数。这是人们首先了解C ++的第一件事,所以在第一个例子中就是正确的。

祝你好运。

答案 5 :(得分:0)

您可能打算写:

int main()
{
     int TotalVolume;

你不能在你做的地方开始。 您已声明将存在函数main(),并且存在全局变量TotalVolume,但不允许使用跟随它们的匿名块。