Alem das palavras reservadas do C as extensões do C++ acrescentam as
seguintes palavras reservadas:
--Quando um objeto é criado podemos inicializar vários elementos
de dados com valores.
--Usando uma função construtora podemos inicializar
variáveis.
--Em C++ o conceito é expandido podendo se usar parâmetros na
função construtora de forma que a inicialização das
variáveis poderá ser feita com os valores recebidos como
parâmetros.
// criacao da classe fila
É possível para uma função não-membro de
uma class ter acesso a partes privadas de uma class pela
declaração da função como sendo um friend da
class.
O C++ permite a uma função associar uma valor padrão
para um parâmetro quando nenhum argumento correspondente for usado na
chamada da função.
void f (int i =1)
Em C++ a struct tem as mesmas capacidade que uma class.
Assim uma struct também pode incluir alem do dado o código
que manipula estes dados.
A diferença é que por definição os membros de
uma class são private e os membros de uma struc são
public.
Segue um exemplo usando struc:
(class07.cpp do FTP ou veja aqui...)
clas07.cpp
clas08.cpp
clas09.cpp
O C++ possui uma característica importante que é chamada
função inline. Uma função inline ao invés de
ser chamada é expandida em linha. Assim o compilador insere o
código desta função inline em cada ponto onde é
chamada. Como vantagem não temos o overhead das chamadas que implica em
salvar o contexto e restaurar na volta da função. Como
desvantagem o código objeto aumenta pela inserção das
instruções da função a cada chamada. Para
funções bem pequenas temos vantagens em defini-las como inline
pois se o código do salvamento de contexto é maior que a
função, sendo inline otimiza o código e executa mais
rápido.
O exemplo que segue ilustra a forma de se definir funções
inline:
(clas10.cpp do FTP ou veja aqui...)
clas10.cpp
Outra forma de se definir uma função do tipo inline é
quando definimos a função dentro de uma class e o seu
código também é incluído da definição
desta class. O exemplo anterior é mostrado a seguir com as
funções codificadas na class o que torna inline estas
funções.
(clas11.cpp do FTP ou veja aqui...)
clas11.cpp