在没有friend c++的情况下进行模板分配,可以通过以下方式实现:
class MyClass {
public:
template <typename T>
void allocateTemplate(T arg) {
// 模板分配的代码逻辑
}
};
class MyClass;
template <typename T>
void allocateTemplate(MyClass& obj, T arg);
class MyClass {
private:
// 私有成员
// 声明非成员函数模板为友元
friend void allocateTemplate<>(MyClass& obj, T arg);
};
template <typename T>
void allocateTemplate(MyClass& obj, T arg) {
// 模板分配的代码逻辑
}
这样,通过调用成员函数模板或非成员函数模板,就可以在没有friend的情况下进行模板分配。
领取专属 10元无门槛券
手把手带您无忧上云