It isn't clear why you are trying to allocate a two-dimensional array, so I'm assuming that's just a typo. Anyway, you can't declare a variable-length array of objects that don't have a default constructor. Moreover, you shouldn't be using 'new' to allocate *any* array for that matter (quite error prone). The best solution would be to use an std::vector:
Code:
class neural_node
{
public:
neural_node(int size){
node_size=size;
}
private:
int node_size;
};
class layer {
public:
layer(int node_size, int number_of_nodes)
: layer_nodes( number_of_nodes, neural_node( node_size ) ) {
// ...similar to...
layer_nodes.resize( number_of_nodes, neural_node( node_size ) );
}
private:
std::vector< neural_node > layer_nodes;
};