在成员函数声明中指定C
是什么意思?为什么在声明成员函数时指定类名?
回答
你不应该这样做。许多现代编译器会将其视为语法错误,例如,g ++ 4.2.1将会!
没有意义,也没有必要这样做。由于Test
的声明在C
声明的范围内,编译器知道函数Test
是C
的成员。
定义方法时之类的外部这只是neccessary:
class C : public B
{
public:
void Test();
};
void C::Test() { ... }
但是,在你的例子似乎暗示的类定义中声明它*时。 – 2011-05-09 21:24:05
你是什么意思(可能你指的是一个错误的帖子,我在发帖后不久编辑,实际上是从问题中复制粘贴并忘记删除错误)。 – 2011-05-09 21:37:24
是的,我提到了早期版本。现在看起来很好。 – 2011-05-09 22:21:47
不仅没有一点上,它是非法的透顶(见8.3/1中的语言标准)。通常,在C++语言限定名是当你指的是先前声明实体唯一允许的,但不是当您将引入一个新的实体(也有从这个规则有些例外,但他们都不在这里适用)。
由于您的成员函数声明无效,因此您发布的代码需要来自任何符合规范的编译器的诊断消息。
- 1. C++成员函数指针,声明
- 2. 将指针声明为类成员C++
- 3. 声明前向声明的类的成员函数为朋友
- 4. 类成员函数的声明无疑
- 5. 声明和定义类成员函数内的函数对象
- 6. 在非成员函数声明的开头有什么影响?
- 7. 为什么使用声明没有公开成员指针
- 8. 没有在类中声明成员函数 - 编译出错时
- 9. 声明类的成员函数作为模板类
- 10. 函数指针声明 - __P做什么?
- 11. 在运行时声明类成员D
- 12. 声明在C++中的成员函数
- 13. 什么时候需要将类数据成员声明为公共?
- 14. 将接口声明为类成员有什么用处?
- 15. 在类声明之前调用一个类的成员函数
- 16. 声明模板类中的结构,未定义成员函数
- 17. 如何在编译时声明一个函数是特定类的成员
- 18. 在其声明中带有指针的函数。为什么?
- 19. 为什么括号在函数指针声明中很重要?
- 20. 我可以在声明成员时指定接口吗?
- 21. 声明指针的可变参数模板成员函数
- 22. 类成员函数指针
- 23. 作为类成员的类成员函数指针
- 24. 在对象中声明函数名称,为什么?
- 25. 为什么静态成员函数只能在类定义中声明为静态而不是在其自己的定义中声明?
- 26. 什么是winapi函数声明约定?
- 27. 友元函数声明为成员函数
- 28. 关于声明成员函数
- 29. 将对象声明为类成员
- 30. C++:将模板声明为类成员
我们之所以这样做,是因为它使得剪切/粘贴和定义/声明之间的搜索更加容易。但是对于现代的IDE,没有必要,现在它是非法的。 – 2011-05-09 21:26:49
@Martin Becket:严格地说,即使在C++ 98中它也是非法的。即使有一段时间它是合法的,它一定是一些标准前的时期。 – AnT 2011-05-09 23:51:13