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;
}
我在另一个类的函数内部有这个类 给出错误:在'{'标记之前不允许使用函数定义 你能说我为什么吗?
答案 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呢?想要在其他功能中使用它似乎很有用。