tipos de dados dinâmicos não tem um tamanho fixo. Quando um computador armazena um número , que utiliza o mesmo número de bytes para armazenar o número " 0 " e o número " 20000 ". Mas tentar armazenar uma frase e as mudanças panorama dramaticamente. Uma vez que cada frase tem um comprimento diferente , a memória usada para armazenar a frase tem de mudar dinamicamente . Padrão C não inclui um tipo de dados , e projetar um tipo de dados dinâmica (ou classe string) tornou-se quase um rito de passagem de qualquer novo /programador C + C + . Coisas que você precisa 
 Computer Fotografia de C + + Compiler (recomendado : Visual C + + Express) 
 Mostrar Mais instruções 
 Projete uma classe string 
 1 
 Visualize as características de sua classe string. A seqüência deve ter o seguinte : 
 
 tamanho dinâmico ( muda com a entrada do usuário ou atribuição ) 
 
 Ser capaz de saber o tamanho da seqüência de 
 
 saída da cadeia. . armazenado na memória. 
 
 Guarde o tamanho. 
 
 Guarde o primeiro caractere de nossa string ( uma vez que é dinâmico, você não sabe onde termina. ) 
 2 
 separado quais as características do seu classe string são informações (ou dados) e quais são as funções. Geralmente, tudo o que envolve a ação é uma função. A partir da nossa lista : . . 
 
 Tamanho dinâmico - > Função baseado em como você construir uma seqüência 
 
 saber o tamanho do string -> Função 
 
 saída do string - . > Função 
 
 Guarde o tamanho - > dados /informações 
 
 Guarde o início da cadeia - . > dados /informações 
 . 3 
 Definir o papel de cada função eo tipo de dados membros de sua classe em termos simples. Da lista anterior : . . 
 
 Dinâmico Size - Função - Constrói a string 
 
 saber o tamanho - Function - Retorna o tamanho cadeia 
 
 saída da string - Function - Retorna o conteúdo da seqüência 
 
 armazenar o tamanho - . dados /informações - deve ser um número inteiro positivo 
 
 Guarde o início da cadeia - . dados /informações - . caráter 
 
 a implementação da classe String - arquivo de cabeçalho 
 4 
 Crie um arquivo de cabeçalho chamado MyString.h (Arquivo -> Adicionar -> Header file) . Um arquivo de cabeçalho é como um índice para o seu código . 
 5 
 Defina sua classe no arquivo de cabeçalho . Este é o código : 
 
 classe mystring { 
 6 
 Criar funções públicas para enfrentar todas as funções em seu projeto. Este é o código : 
 
 público : 
 
 mystring ( ) //cria uma cadeia vazia 
 
 mystring ( const char * ) //cria e inicializa a string para algum valor ( entre parênteses ) 
 
 ~ mystring ( ) //desaloca recursos de memória dinâmica 
 
 int GetSize ( ) //mostra o tamanho da corda 
 
 char * outputmystring () //Mostra a string 
 7 
 Criar membros de dados privados para armazenar os dados de sua seqüência . Este é o código : 
 
 privado : 
 
 int _size ; //armazena o tamanho da corda 
 
 char * _mystr /* isto é um membro de dados que aponta para o primeiro caráter da string. Se sabemos que o primeiro caractere eo tamanho da string, podemos acessar todos os seus caracteres * /Tablet 
 } 
 8 
 Digite o seu código de arquivo de cabeçalho completo ( você pode copiar e colar a partir daqui) : 
 
 /* MyString.h * /Tablet 
 classe mystring { 
 
 público : 
 
 mystring (); 
 
 mystring (const char * ); 
 
 ~ mystring (); 
 
 int GetSize (); 
 
 char * outputmystring (); 
 
 privado : 
 
 int _size ; 
 
 char * _mystr ; 
 
 } 
 implementando a classe string - Código do arquivo 
 9 
 Crie um arquivo chamado CPP correspondência MyString.cpp (File -> Add -> cpp - arquivo vazio). Aqui, você vai incluir as definições para a função no arquivo de cabeçalho MyString.h . Assim como um livro, arquivos de cabeçalho armazenar as principais tittles e cpp armazenar o conteúdo e definições de cada til . 
 10 
 incluir as bibliotecas CString e iostream . Este é o código : 
 
 /* MyString.cpp * /Tablet 
 # include  
  # include  
 11  Definir as funções de construção (construção vazia e parâmetro de construção) . Aqui está o código : 
 
 mystring :: mystring () //construtor vazio 
 
 { 
 
 _size = 0; 
 
 _mystr = 0; < br > 
 } 
 
 myString :: myString ( const char * str ) /* Cria e inicializa string para um valor * /Tablet 
 { 
 
 if ( str !) 
 
 { _size = 0; _mystr = 0; } /* se nenhum valor , string é vazia * /Tablet 
 mais 
 
 { _size = strlen (str ); < br > 
 _string = new char [ _size +1 ]; /* esta é a nossa alocação dinâmica de memória , com base no tamanho do parâmetro * /Tablet 
 strcopy ( _string , str ); 
 
} } 
 
 
 12 
 Definir a função de destruidor. Esta função é usada para de- alocar a memória dinâmica. Toda vez que a memória usada mudanças, o computador tem de saber que ele pode usar essa parte da memória para outros fins; este processo é chamado de- alocação. O código : 
 
 mystring :: ~ mystring 
 
 { delete [ ] _mystr ;} /* deallocates nossa memória dinâmica * /
 13 
 Definir a função para retornar o tamanho de cordas e de saída da cadeia. O tamanho é simples. Apenas exibir o valor de _size : 
 
 int mystring :: GetSize () { return ( _size );} que irá imprimir 
 
 Para saída da cadeia, cada personagem até chegar ao final do string ( que passa a ser o valor de _size ) : 
 
 mystring vazio :: outputmystring () 
 
 {for ( int count = 0; count == tamanho ; contar + +) 
 
 { cout << _mystr [ contar ]; } 
 
 cout << endl; } 
 14 
 Aqui é o seu código completo para MyString.cpp : < br > 
 /* MyString.cpp * /Tablet 
 # include  
  # include  
  mystring :: mystring () //vazio construtor 
 
 { 
 
 _size = 0; 
 
 _mystr = 0; } 
 
 
 
 mystring :: mystring ( const char * str ) /* Cria e inicializa string para um valor * /Tablet 
 { 
 
 if ( str) 
 
 { _size = 0; ! _mystr = 0; } /* se não houver valor , string é vazia * /Tablet 
 mais 
 
 { _size = strlen (str ); 
 
 _string = new char [ _size +1 ]; /* esta é a nossa dinâmica alocação de memória , com base no tamanho do parâmetro * /
 
 strcopy ( _string , str ) ; 
 
 } 
 
 } 
 
 mystring :: ~ mystring 
 
 { delete [ ] _mystr ;} /* deallocates nossa memória dinâmica * /Tablet 
 int mystring :: GetSize () { return ( _size );} 
 
 mystring vazio : : outputmystring () 
 
 {for ( int count = 0; count == tamanho ; contar + +) { 
 
 cout << _mystr [count ]; } 
 
 cout << endl; }