在成员函数声明中指定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. 成员函数在类中声明
- 2. C++成员函数指针,声明
- 3. 将指针声明为类成员C++
- 4. 声明前向声明的类的成员函数为朋友
- 5. 声明和定义类成员函数内的函数对象
- 6. 在非成员函数声明的开头有什么影响?
- 7. 没有在类中声明成员函数 - 编译出错时
- 8. 声明类的成员函数作为模板类
- 9. 函数指针声明 - __P做什么?
- 10. 在运行时声明类成员D
- 11. 将接口声明为类成员有什么用处?
- 12. 如何在编译时声明一个函数是特定类的成员
- 13. 为什么括号在函数指针声明中很重要?
- 14. 我可以在声明成员时指定接口吗?
- 15. 类成员函数指针
- 16. 作为类成员的类成员函数指针
- 17. 为什么静态成员函数只能在类定义中声明为静态而不是在其自己的定义中声明?
- 18. 友元函数声明为成员函数
- 19. 关于声明成员函数
- 20. 什么是winapi函数声明约定?
- 21. C++:将模板声明为类成员
- 22. 将对象声明为类成员
- 23. 没有在类中声明的成员函数
- 24. 错误:没有在类'_______'中声明的'__________'成员函数
- 25. 调用成员函数,在类之外声明
- 26. 为什么这个函数声明两次?回调函数在哪里声明?
- 27. 为什么要在类的构造函数中声明变量?
- 28. 为什么我可以在成员函数中使用尚未声明的成员变量?
- 29. 在类中声明时无法访问变量。在函数中声明时工作。为什么?
- 30. 成员指向成员对象和声明顺序的指针
我们之所以这样做,是因为它使得剪切/粘贴和定义/声明之间的搜索更加容易。但是对于现代的IDE,没有必要,现在它是非法的。 – 2011-05-09 21:26:49
@Martin Becket:严格地说,即使在C++ 98中它也是非法的。即使有一段时间它是合法的,它一定是一些标准前的时期。 – AnT 2011-05-09 23:51:13