Esempio n. 1
0
void testaNodoInteiro() {
  int * ultimo = new int;
  *ultimo = 9;
  Nodo<int> *ultimoNodo = new Nodo<int>();
  ultimoNodo->setValor(ultimo);

  int *segundo = new int;
  *segundo = 5;
  Nodo<int> *segundoNodo = new Nodo<int>();
  segundoNodo->setValor(segundo);

  int *primeiro = new int;
  *primeiro = 1;
  Nodo<int> *primeiroNodo = new Nodo<int>();
  primeiroNodo->setValor(primeiro);

  primeiroNodo->setProximo(segundoNodo);

  cout << *primeiroNodo;
  cout << " | " << *segundoNodo;
  cout << " | " << *ultimoNodo;
  cout << endl;

  Nodo<int> novoNodoCopia1 = *segundoNodo;
  Nodo<int> *novoNodoCopia2 = new Nodo<int>(*segundoNodo);
  Nodo<int> novaCopia3 = novoNodoCopia1;
  Nodo<int> novaCopia4(*ultimoNodo);

  cout << "Teste construtor de copia 1: " << novoNodoCopia1 << endl;
  cout << "Teste construtor de copia 2: " << *novoNodoCopia2 << endl;
  cout << "Teste construtor de copia 3: " << novaCopia3 << endl;
  cout << "Teste construtor de copia 4: " << novaCopia4 << endl;

  if (primeiroNodo)
    delete primeiroNodo;
  if (segundoNodo)
    delete segundoNodo;
  if (ultimoNodo)
    delete ultimoNodo;
  if (novoNodoCopia2)
    delete novoNodoCopia2;
}
Esempio n. 2
0
void testaSobrecargaDoOperador() {
  Teste * t1 = new Teste(12,23);
  Teste * t2 = new Teste(-2,-4);

  Nodo<Teste> *ultimoNodo = new Nodo<Teste>();
  ultimoNodo->setValor(t1);

  Nodo<Teste> *meioNodo = new Nodo<Teste>();
  meioNodo->setValor(new Teste(-2,4));
  meioNodo->setProximo(ultimoNodo);

  Nodo<Teste> *primeiroNodo = new Nodo<Teste>();
  primeiroNodo->setValor(t2);
  primeiroNodo->setProximo(meioNodo);

  Nodo<Teste> *atual = primeiroNodo;
  while (atual) {
    cout << *atual << " | ";
    atual = atual->getProximo();
  }
  cout << endl;

  Nodo<Teste> n1;
  n1.setValor(new Teste(-23,-12));
  cout << "Testando sobrecarga estática: ";
  cout << n1 << endl;

  cout << "Testando sobrecarga dinâmica: ";
  cout << *primeiroNodo << endl;

  if (primeiroNodo)
    delete primeiroNodo;
  if (meioNodo)
    delete meioNodo;
  if (ultimoNodo)
    delete ultimoNodo;
}