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