Como acessar uma variável-membro

Eu tenho familiaridade com a linguagem C pura pois desenvolvo sistemas embarcados e microcontroladores. Estou me dedicando muito nos estudos deste novo paradigma de programação que é a orientação a objetos (OOP). Eu me envolvi num projeto pessoal, faz alguns dias, de começar um pequeno desenvolvimento chamado de ‘algoritmo genético’. Está ainda somente num esboço de como criar uma “população” (uma grande string) e separar em indivíduos (“pedaços dessa string” ou substrings). Até aí , tudo certo. O programa funciona quando eu separo em partes. Mas agora eu quero chamar uma variável-membro de uma classe que eu criei e quando eu compilo, ela não aparece embora a compilação não mostre qualquer falha. Já tentei criar outra forma de instanciar a variável numa outra classe ou criar um recurso ‘friend’ no protótipo da classe principal mas nada. Gostaria de saber se há alguém com boa experiência em OOP para analisar esse problema e sugerir novas revisões. Agradeço já as manifestações. Logo colocarei o código aqui.

#include <iostream>
#include <math.h>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <vector>
#include <fstream>

class TransformStrsToDec  
{
public: 

long int strnbinars(void);
long int sum;
long int N, n ; 
std::vector <std::string> storageRangeStr ;
std::vector <long int> dec_storageRangeStr ;
std::string rangeStr ;
std::string strc0 ; 

protected:

int k, j, index1, r , index2 ;
} ;

inline long int TransformStrsToDec :: strnbinars(void)
{
float s;
char b1n[1] = {'1'} ;
char b0n[1] = {'0'} ; 
sum = 0 ;
int pp ;
N =1800;  // Aqui é a quantidade de 0's e 1's. Precisa ser múltiplo de n 
n = 6 ;	 // Quantidade de bits
  
	srand(time(NULL));             
           
        for(k=0 ; k < N; k+=1)
        {
        s = ((float)rand()/RAND_MAX)  ;
            if(s > 0.5)
             { rangeStr.append(b1n,1) ; }    
	      
             else {rangeStr.append(b0n,1) ; }      
        }      

      for(j=0 ; j < (N/n) ; j+=1)    
      {                  
       strc0 =  (rangeStr.substr(j*(n),(j*(n) + (n)))) ;                
       storageRangeStr.push_back(strc0.substr(0, n)) ;
      }

for(r = 0 ; r < (N/n) ; r+=1) 
{ 
    sum = 0;    
     for(index1 = 0; index1 < n ; index1+=1)
     {    	
	 if(storageRangeStr[r][index1] == '1')      
     	{
        pp = pow(2, (n)-index1-1) ; 
        sum+=pp ;    
        }  
     }  
    dec_storageRangeStr.push_back(sum) ;             
}
return 0 ;

}

/* --------------------------------------------------------- */      
/* --------------------------------------------------------- */      
class Segment_crss  
{

public:

unsigned int nf0, nf1 ;
std::string  selecionado0, selecionado1 ; 
void decToStr(void) ;

private:

std::string  s0, s1, ostrdir0, ostrdir1, ostrevs0, ostrevs1 ;
} ;

inline void Segment_crss :: decToStr(void)
{
TransformStrsToDec  *sto_rng;
sto_rng = new TransformStrsToDec ;
sto_rng->dec_storageRangeStr[0] ;

nf0 = sto_rng->dec_storageRangeStr[0] ;

   while(nf0 != 1)
  {    		                   
	  if((nf0 % 2) == 1) 
	  {
	 ostrdir0.append("1",1)  ;
	  } 
	else {ostrdir0.append("0",1) ; }
       nf0 /= 2; 
  }
    ostrdir0.insert(ostrdir0.size(), "1") ; 

int plarg = ostrdir0.size();         

    for(int k0=0; k0 < plarg ; k0+=1)
    {   
    ostrevs0[k0] = ostrdir0[plarg-k0-1] ; 
    }
std::string  s0 = "     " ;  

    for(int k0=0; k0 < plarg ; k0+=1)
    {   
    std::cout << ostrevs0[k0];   
    s0 += ostrevs0[k0] ;  
    }
std::string selecionado0(s0) ;
std::cout <<  selecionado0 << "\t" ;

/* --------------------------------------------------------- */      

nf1 = sto_rng->dec_storageRangeStr[1];

   while(nf1  != 1)
  {      		
	    if((nf1 % 2) == 1) 
	    {
	      ostrdir1.append("1",1)  ;
	     } 
	   else {ostrdir1.append("0",1) ; }
       nf1 /= 2; 
  }

    ostrdir1.insert(ostrdir1.size(), "1") ; 

int plarg1 = ostrdir1.size();         

    for(int k1=0; k1 < plarg1 ; k1+=1)
    {   
    ostrevs1[k1] = ostrdir1[plarg1-k1-1] ; 
    }
std::string  s1 = "     ";

    for(int k1=0; k1 < plarg1 ; k1+=1)
    {   
    ostrevs1[k1];
     s1 += ostrevs1[k1] ;  
    }

std::string selecionado1(s1) ;

std::cout <<  selecionado1 << "\n" ;          
} 

/* --------------------------------------------------------- */      


int main(int argc,char **argv)
{
std::cout << " Candidatos a cruzamento: " ;

Segment_crss acess;
acess.Segment_crss::decToStr();

std::cout << "\n" ;

TransformStrsToDec *chamada_f[2];

TransformStrsToDec *chamada_fs[2];

chamada_f[0] = new TransformStrsToDec;
chamada_f[1] = new TransformStrsToDec;

chamada_fs[0] = new TransformStrsToDec;
chamada_fs[1] = new TransformStrsToDec;

chamada_f[0]->strnbinars( )   ;
chamada_f[1]->strnbinars( )   ; 

chamada_fs[0]->strnbinars( )   ; 
chamada_fs[1]->strnbinars( )   ; 


std::cout << "\t" << chamada_f[0]->dec_storageRangeStr[0];

std::cout << "\t" << chamada_f[1]->dec_storageRangeStr[1]; 

std::cout << "\n" ;

std::cout << "\t" << chamada_fs[0]->storageRangeStr[0]; 

std::cout << "\t" << chamada_fs[1]->storageRangeStr[1]; 


system("pause >> null") ;
return 0;
}

A variável-membro que eu quero chamar são essas: ‘selecionado0’ e ‘selecionado1’

**std::cout <<  selecionado0** 
**std::cout <<  selecionado1 **
**```**