【发布时间】:2016-09-03 20:04:34
【问题描述】:
我收到来自 cpp 编译器的警告,我似乎无法解决。我想至少了解我做错了什么......
sketch\IRectangle.h:7:20: 警告:ISO C++ 禁止声明 没有类型的“矩形”[-fpermissive]
矩形(int,int);
^
头文件
#ifndef RECTANGLE_H
#define RECTANGLE_H
class IRectangle
{
public:
Rectangle(int,int);
void set_values (int,int);
int area (void);
private:
int width, height;
};
#endif
矩形实现
#include "IRectangle.h"
IRectangle::Rectangle(int width, int height)
{
}
void IRectangle::set_values (int a,int b)
{
}
int IRectangle::area()
{
return 0;
}
谷歌搜索后,我遇到了this 和this 线程,但我三次检查原型是否匹配,所以我真的不知道我做错了什么。
PS: 在 C++ 中可以在 interface 前加上 'I' 前缀吗?
【问题讨论】:
-
Rectangle(int,int);和IRectangle(int,int);不一样 "PS: 在 C++ 中,接口可以加上'I'前缀吗?" 可以。但是构造函数对接口没有意义。 -
PS:在 C++ 中可以在 interface 前加上 'I' 前缀吗? 编译器不关心你是否这样做。就个人而言,我认为如果有必要,那可能意味着您的类层次结构太复杂了。
-
@zwol 对,当我看到答案时,我也明白了。谢谢指出。这一直是我的问题......
-
我怀疑在这种情况下
I代表“整数”而不是“接口”。我看不到任何虚拟功能。但是当你开始添加这样的类型前缀时,你真的应该考虑template。
标签: c++