本文介绍了初始化数组的std ::的大小在使用它的类的构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用的std ::阵列< T类,的std ::为size_t N'GT;
作为类的私有属性,但是初始化它的大小在类的构造函数
Is it possible to use the std::array<class T, std::size_t N>
as a private attribute of a class but initialize its size in the constructor of the class?
class Router{
std::array<Port,???> ports; //I dont know how much ports do will this have
public:
Switch(int numberOfPortsOnRouter){
ports=std::array<Port,numberOfPortsOnRouter> ports; //now I know it has "numberOfPortsOnRouter" ports, but howto tell the "ports" variable?
}
}
我可能会使用一个指针,但会这样没有它怎么办?
I might use a pointer, but could this be done without it?
推荐答案
没有,尺寸必须在编译时是已知的。使用的std ::矢量
代替。
No, the size must be known at compile time. Use std::vector
instead.
class Router{
std::vector<Port> ports;
public:
Switch(int numberOfPortsOnRouter) : ports(numberOfPortsOnRouter) {
}
};
这篇关于初始化数组的std ::的大小在使用它的类的构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!