【发布时间】:2013-02-02 17:30:06
【问题描述】:
我想创建一个与返回类型同名的成员函数。示例:
class A { };
class B {
public:
A& A() { return *a; }
private:
A* a;
};
但是,编译器不会让我这样做。我试图将成员返回类型的类型更改为::A(建议here,但无济于事。我知道我可以更改成员名称,但我只是想了解为什么它有这个限制,以及我的解决方法是什么。
【问题讨论】:
-
为什么投反对票?这是一个合理的问题。
-
因为问题基本上是“为什么 C++ 语言是这样设计的”,这不是一个实际的编程问题。答案不会神奇地使它合法。
-
我还问了我的解决方法是什么,在下面得到了回答。我也认为尝试理解原因没有问题。网站常见问题解答说:“如果您提出问题的动机是“我想参加关于 ______ 的讨论”,那么您不应该在这里提问。但是,如果您的动机是“我希望其他人向 ______ 解释我”,那么你可能没事。”我相信我的问题符合第二个想法。
-
我不明白为什么这也被否决了。这个问题是完整的,包含示例代码并询问如何修复。它甚至与一些分配无关,代码实际上只是问题的测试用例。
标签: c++