Tag: 静态函数

你会在哪里使用一个朋友函数与静态成员函数?

当我们想要访问该类的私有成员时,我们将非成员函数作为一个类的朋友。 这使它具有与静态成员函数相同的访问权限。 两种select都会给你一个与该类的任何实例无关的函数。 我们何时必须使用朋友function? 我们何时必须使用静态函数? 如果两者都是解决问题的可行select,我们如何衡量其适宜性? 是否有一个应该是默认优先? 例如,当实现一个创build只有一个私有构造函数的类foo实例的工厂时,该工厂函数应该是foo一个静态成员(你可以调用foo::create() ),或者它应该是一个好友函数会调用create_foo() )?

静态成员函数错误; 如何正确书写签名?

当我尝试使用当前签名在g ++中编译我的代码时出现错误: cannot declare member function static void Foo::Bar(std::ostream&, const Foo::Node*) to have static linkage 我的问题是双重的: 为什么不这样编译? 什么是正确的签名,为什么? 使用C ++时签名一直是我的死亡 编辑:这是类头文件,以及: class Foo { public: Foo(); ~Foo(); bool insert(const Foo2 &v); Foo * find(const Foo2 &v); const Foo * find(const Foo2 &v) const; void output(ostream &s) const; private: //Foo(const Foo &v); //Foo& operator =(const Foo […]