• Prezados usuários,

    Por questões de segurança, a partir de 22/04/2024 os usuários só conseguirão logar no fórum se estiverem com a "Verificação em duas etapas" habilitada em seu perfil.

    Para habilitar a "Verificação em duas etapas" entre em sua conta e "Click" em seu nick name na parte superior da página, aparecerá opções de gestão de sua conta, entre em "Senha e segurança", a primeira opção será para habilitar a "Verificação em duas etapas".

    Clicando alí vai pedir a sua senha de acesso ao fórum, e depois vai para as opções de verificação, que serão as seguintes:

    ***Código de verificação via aplicativo*** >>>Isso permite que você gere um código de verificação usando um aplicativo em seu telefone.

    ***Email de confirmação*** >>>Isso enviará um código por e-mail para verificar seu login.

    ***Códigos alternativos*** >>>Esses códigos podem ser usados para fazer login se você não tiver acesso a outros métodos de verificação.

    Existe as 3 opções acima, e para continuar acessando o fórum a partir de 22/04/2024 você deverá habilitar uma das 03 opções.

    Tópico para tirar dúvidas>>>>https://forum.adrenaline.com.br/threads/obrigatoriedade-da-verificacao-em-duas-etapas-a-partir-de-24-04-2024-duvidas.712290/

    Atencionamente,

    Administração do Fórum Adrenaline

Ajuda algoritmo C++

rafh

New Member
Registrado
Estava praticando um pouco de de POO em C++ e tentei desenvolver um controle de uma livraria, entretanto, toda a vez que compilo, é acusada a necessidade da conversão de um tipo não escalar. Alguém poderia me dar uma ajuda?
Segue ai o código:

Código:
#ifndef _LIVRO_H_
#define _LIVRO_H_
#include<iostream>
#include<string>
using namespace std;
class Livro{
      public:
             Livro(char *nom, char *aut, char *editor);




             void getnome(){ cout<<"\n "<<nome;}
             void getautor(){ cout<<"\n "<<autor;}
             void geteditora(){ cout<<"\n "<<editora;}


      private:
              char nome[50], autor[40], editora[50];
              };


Livro::Livro(char *nom, char *aut, char *editor){
     strcpy(Livro::nome, nom);
     strcpy(Livro::autor, aut);
     strcpy(Livro::editora, editor);
     }
#endif
Código:
#include<iostream>
#include"livro.h"
using namespace std;


main(){
       Livro titulos = new Livro("Eldest", "Christopher Paolini", "Rocco");
       titulos.getnome();
       titulos.getautor();
       titulos.geteditora();


       system("pause");
       }
O erro é esse: conversion for 'Livro*' to non-scalar type 'Livro' required

​Tentei no code::blocks e no Dev-C++.
 
livro.h

C++:
#ifndef _LIVRO_H_
#define _LIVRO_H_

#include <iostream>
#include <string.h>

using namespace std;

class Livro{

      public:

             Livro(char *nom, char *aut, char *editor);

             void getnome(){ cout<<"\n "<<nome;}

             void getautor(){ cout<<"\n "<<autor;}

             void geteditora(){ cout<<"\n "<<editora;}


      private:

              char nome[50], autor[40], editora[50];

              };

Livro::Livro(char *nom, char *aut, char *editor){

     //Usar 'this' quando se referir a elementos da propria classe.
     strcpy(this->nome, nom);
     strcpy(this->autor, aut);
     strcpy(this->editora, editor);

     }

#endif

livro.cpp

C++:
#include <iostream>
#include "livro.h"

using namespace std;

int main(){

    //Ponteiro pra objeto da classe Livro
    Livro *titulos = new Livro("Eldest", "Christopher Paolini", "Rocco");

    //Operador flecha pra acessar os metodos da classe
    titulos->getnome();
    titulos->getautor();
    titulos->geteditora();

    return 0;
}

Basicamente isso.
Quando instanciar um objeto, crie um ponteiro para a classe.
 
Última edição:
Vlw ae cara. Quanto ao modo de se referir a métodos da classe, fiz do mesmo modo apresentado pelo C/C++: A Biblia. Tava mesmo estranho esse erro. Muito obrigado cara, foi de grande ajuda!
 

Users who are viewing this thread

Voltar
Topo