是否可以将 std::array<class T, std::size_t N> 用作类的私有(private)属性,但 在类的构造函数 中初始化其大小?

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?
    }
}

我可能会使用一个指针,但是没有它可以做到吗?

最佳答案

不,大小必须在编译时知道。请改用 std::vector

class Router{
    std::vector<Port> ports;
public:
    Switch(int numberOfPortsOnRouter) : ports(numberOfPortsOnRouter) {
    }
};

关于c++ - 在使用它的类的构造函数中初始化 std::array 的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13103219/

10-12 05:46