C ++类定义

时间:2010-11-28 01:33:31

标签: c++ class

class Rectangle {
    int x, y;
  public:
    void set_values (int,int);
    int area (void) {return (x*y);}
};

void Rectangle::set_values (int a, int b) {
  x = a;
  y = b;
}

我在另一个类的函数内部有这个类 给出错误:在'{'标记之前不允许使用函数定义 你能说我为什么吗?

3 个答案:

答案 0 :(得分:1)

你不能在C ++中的另一个函数内写一个函数定义。如果有的话,您需要在类声明中编写实现,就像使用area函数一样。

答案 1 :(得分:1)

您应该从您的实现(.cpp)中分离您的声明(.h)。如果你想在你的声明文件中实现某些功能(对于简单的函数而言,正常),你应该使用内联保留字

Rectangle.h
class Rectangle { 
    int x, y; 
  public: 
    void set_values (int,int); 
    inline int area (void) {return (x*y);} 
}; 

Rectangle.cpp
#include Rectangle.h

void Rectangle::set_values (int a, int b) { 
  x = a; 
  y = b; 
} 

答案 2 :(得分:0)

您可以在函数范围中创建一个类型,但不能在那里声明该函数。你可以这样做:

class Rectangle { 
   int x, y; 
    public: 
      void set_values (int a, int b) { x = a; y = b; }
      int area (void) { return (x*y); } 
};

但是,为什么不正常声明Rectangle呢?想要在其他功能中使用它似乎很有用。