构造函数在c++中可以是朋友吗
Can a constructor function be a friend in c++?
我们可以将类的构造函数声明为友元吗?我认为它不可能。但我在某个地方读到它可以是,但我做不到。如果是的话,你能提供一些示例代码吗。
可以:
class Y
{
public:
Y();
};
class X
{
private:
void foo() {}
friend Y::Y();
};
Y::Y()
{
X x; x.foo();
}
根据11.3好友[class.friend]
5) 当友元声明引用重载的名称或运算符时,只有参数类型指定的函数才成为友元A类X的成员函数可以是类Y的朋友。
[示例:
class Y {
friend char* X::foo(int);
friend X::X(char); // constructors can be friends
friend X::~X(); // destructors can be friends
};
--结束示例]
(强调矿)
相关文章:
- 一位朋友将模板函数缩写为clang和gcc
- 班级的朋友是不可接近的
- 与朋友声明相反
- 为什么即使我声明了朋友类,我也会收到错误"无法访问类中声明的私人成员"
- 类似虚拟的朋友功能?
- 为什么C++需要公共继承,忽略朋友声明,才能使动态向下工作?
- 在朋友类中使用模板
- 访问私人成员而不使用朋友类
- 类和朋友在它们之间起作用
- "朋友"成员函数和 GCC 与 Clang
- 朋友声明的复杂范围界定规则有什么意义?
- C++:让函数成为多个类的朋友?
- 有没有办法C++将给定类的功能限制为仅另一个类(不使用继承,朋友)?
- 朋友,前瞻宣言,C++
- 在VS 2017中,朋友通过具有私有析构函数的结构的unique_ptr向量进行迭代失败
- 限制多模板参数朋友函数可访问的类实例的范围
- 朋友定义函数的名称空间是什么
- 朋友函数随机行为
- 从安卓NDK15切换到17使得malloc和朋友找不到
- 在课堂上创建了一个朋友,给出"无输入文件"错误