这是我第一次真正涉足c ++,所以请耐心等待。这也是一个赋值,基本上我提供了一堆废话.h和一些测试文件,但没有实现文件。我们期望创建实现文件,但是由于缺少这么多函数,它自然不会编译,因此我无法使用迭代方法开始编码。所以,我正在尝试创建虚拟实现,以便我可以一次构建每个部分一个函数。我在头文件中为此特定函数创建匹配的“虚拟”实现时遇到问题。我确信这对于核心程序员来说是c++ 101
,但对于第一次学习c ++的人来说并不是那么简单。我明白了...我的实现与原型定义不匹配。如何让实现与头文件中的函数原型相匹配?请用小词,因为我是业余爱好者。 : - )
// sequence.h
class sequence
{
public:
size_type size( ) const;
具有“虚拟”功能的实现文件。
// sequence.cpp
const sequence::size_type sequence::size()
{
return 0;
}
编译器错误:
Error 1 error C2511: 'const main_savitch_3::sequence::size_type main_savitch_3::sequence::size(void)' : overloaded member function not found in 'main_savitch_3::sequence' hw1\sequence1.cpp 24 1 hw1
2 IntelliSense: declaration is incompatible with "main_savitch_3::sequence::size_type main_savitch_3::sequence::size() const" (declared at line 93 of "hw1\sequence1.cpp 23 38 hw1
答案 0 :(得分:3)
您的签名具有const
成员函数,返回非const值(这非常有意义)。所以你的定义需要匹配:
sequence::size_type sequence::size() const
{
return 0;
}
答案 1 :(得分:1)
函数声明末尾的const
表示该函数不应该修改任何东西"在它所在的类中,而不是返回类型是常量。
你应该写
size_type sequence::size() const
{
return 0;
}
而且,由于我没有看到任何代码,所以你应该只使用" 序列"
中的限定符sequence::size_type
如果在sequence
类中定义(或类型定义)该类型。