Если бы арматура использовала astm напрямую (а вы на самом деле используете C ++), вы бы получили что-то вроде этого:
struct astm
{
astm( int size, float weight, float diameter )
: size( size )
, weight( weight )
, diameter( diameter )
{}
int size;
double weight;
double diameter;
};
struct rebar
{
rebar( int size, double length )
: size( size )
, length( length )
{}
rebar( const astm& astm ) //<<< Uses astm directly
: size( astm.size )
{
// Do something with rest of astm
}
};
Однако, похоже, это не так. Похоже, вы хотите что-то вроде:
std::vector<rebar> rebarVec;
for ( int i = 0; i < numThings; ++i )
{
// Compute stuff from astm[ i ]
rebar rebarItem( size, length );
rebarVec.push_back( rebarItem );
}
Это то, что вы пытаетесь достичь?