c++ - 与模板类型 T 的一个构造函数成为朋友的语法
问题描述
在 C++ 中可以与构造函数成为朋友:
class A {
A() { B b; }
class B {
B(){};
friend A::A();
};
};
我怎样才能实现相同但使用模板类:
template< typename T >
class EnforceOnlyOneIntConstructor
{
EnforceOnlyOneIntConstructor() {}
//friend T::T(int);
//friend T::OnlyOneIntConstructor(int);
friend void T::regularFun(int);
};
class OnlyOneIntConstructor
{
//EnforceOnlyOneIntConstructor< OnlyOneIntConstructor > m_trick;
public:
OnlyOneIntConstructor(int) //: m_trick{}
{}
void regularFun(int) {
EnforceOnlyOneIntConstructor< OnlyOneIntConstructor > m_trick;
}
};
int main() {
OnlyOneIntConstructor a(10);
}
我不知道这是否可能。如果不注释掉有问题的部分,编译器会给出错误:error: C++ requires a type specifier for all declarations
解决方案
推荐阅读
- javascript - React 传递函数作为 prop
- c - 将属性传递给 Blazor 组件
- flutter - 自定义按钮导航栏颤动
- python - How to count consecutive string values of one column grouped by column values of another in a dataframe?
- java - 内置字符串方法的使用是否会创建新字符串
- excel - 在 Excel 中的二维列表中查找值并找到最后一个实例
- java - 创建二维字符串数组
- powershell - 如何从 PowerShell 中的父窗口获取后台任务状态
- node.js - 如何在打字稿中进行模块解析以输出节点?
- reactjs - React 应用程序无法访问 Apache 上的 NodeJs 后端