大佬教程收集整理的这篇文章主要介绍了c – 用’this’指针初始化std :: array,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
template<int nUM> class outer_class; template<int n> class inner_class { private: outer_class<N> *cl; public: inner_class(outer_class<N> *num) { cl = num; } void print_num() { cl->print_num(); } }; template<int nUM> class outer_class { private: int number = NUM; // --> here I basically want NUM times 'this' <-- std::array<inner_class<NUM>,NUM> cl = { this,this,this }; public: void print_num() { std::cout << number << std::endl; } void print() { cl[NUM - 1].print_num(); } }; int main() { outer_class<4> t; t.print(); return 0; }
如何将this指针传递给存储在outer_class数组中的inner_class的所有元素(在C 11中)?
将delegating constructor与std::*_sequence一起使用:
template<int nUM> class outer_class { ... template <std::size_t... Integers> outer_class(std::index_sequence<Integers...>) : cl{(static_cast<void>(Integers),this)...} {} public: outer_class(/* whatever */) : outer_class(std::make_index_sequence<NUM>{}) {} };
附注:
>您的打印成员函数应标记为const,因为它们不会修改您的成员.
> cl [NUM – 1] .print_num();你可能想用std::array::back()
.
以上是大佬教程为你收集整理的c – 用’this’指针初始化std :: array全部内容,希望文章能够帮你解决c – 用’this’指针初始化std :: array所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。