在C++中,静态的构造函数有什么作用啊?
请问:
Class thread{
Public:
void thread_();
static void *thread_(void *);
}
静态的构造函数就调用了一下,非静态的构造函数,这么写,有什么用意?
或者在什么情况下,需要这种构造函数。
楼主再看看构造函数的原型吧!
[解决办法]
其实,也不能说完全没有。
template <typename T,typename ...Args>
T* create(Args && ...args) {
void *p = malloc(sizeof(T));
new (p) T(std::forward<Args>(args)...);
return static_cast<T*>(p);
}
其实,我不确定直接调用T::T(...),是否会填写上vtable。析构是可以这样调用的。
起个跟类名一样的函数,挺有意思。我还没试验过。
叫他静态构造,好像也蛮有道理的。哈哈
一般这种静态函数是为了完成特定的内存分配需求。就是名字起的挺有创意。
[解决办法]
楼主,这哪里是构造函数,看书也不仔细些,C++中定义构造函数压根就不可能有返回值好吧。