Sol 0 Posted March 30, 2019 Report Share Posted March 30, 2019 (edited) Ola Malta! Sou nova na programação em POO e estou com um problema ha dias e não consigo resolver. Tenho um projecto da faculdade em POO e tanto o Codeblocks quanto o VS Code não reconhecem a classe que criei. Testei programas feitos pelo professor e também ocorre o mesmo erro. Será que alguém poderia ajudar-me sff? //DEFINIÇÃO MAIN() #include "M.h" #include "M.cpp" #include<stdio.h> int main() { int n,m,k,p; Matriz mat_a,mat_b,mat_c; printf("Introduza as dimensoes da matriz A",n,m); scanf("%d %d",&n,&m); printf("Introduza as dimensoes da matriz B",k,p); scanf("%d %d",&k,&p); //construção de objetos do tipo Matriz m_a=Matriz(n,m); m_b=Matriz(k,p); m_a.Leitura(); m_a.Leitura(); m_c=m_a; //possibilidade de somar if(mat_a.PodeSomar(&mat_b)) { mat_a += mat_b; printf("A matriz da soma [A] + [B] = \n"); mat_a.Escrita(); } else printf("Não é possível somar essas duas matrizes"); //possibilidade de multiplicar if(mat_c.PodeMultiplicar(&mat_b)) { mat_c *= mat_b; printf("O produto de [A] * [B] = \n"); mat_c.Escrita(); } else printf("Não é possível multiplicar essas duas matrizes"); } /**************************************************************************************************************************/ //DEFINIÇÃO DO FICHEIRO DA CLASSE.cpp #pragma once #include "M.h" #include <stdio.h> #define M_H_INCLUDED #ifndef M_H Matriz :: Matriz(int nLinhas, int nColunas) { Iniciar(nLinhas,nColunas); } Matriz::Matriz() { Iniciar(0,0); } Matriz::~Matriz() { Apagar(); } #endif /**************************************************************************************************************************/ //DEFINIÇÃO CLASSE MATRIZ COM AS OPERAÇÕES EM M_A E M_B #pragma once #include "M.cpp" #include "M.h" #define M_H_INCLUDED #ifndef M_H class Matriz{ private: int **matriz; int linhas; int colunas; void Apagar(); void Iniciar(int nLinhas, int nColunas); public: Matriz(); Matriz(int nLinhas,int NColunas); ~Matriz(); bool PodeMultiplicar(const Matriz*pm); bool PodeSomar(const Matriz*pm); const Matriz& operator =(const Matriz& m1); const Matriz& operator +=(const Matriz& m1); const Matriz& operator *=(const Matriz& m1); void Leitura(); void Escrita(); }; #endif O erro que ocorre é como se a Classe Matriz não representasse um tipo. Como se não tivesse definida então não há reconhecimento dos objectos criados. Tentei outros fóruns e um colega indicou-me este. Caso alguém possa ajudar-me agradeço imensamente. Edited March 30, 2019 by Sol Obs: O erro ocorre nas linha correspondentes aos construtores do ficheiro M.cpp. No codeblocks " Matriz does not a type" e no VS uma outra msg com o mesmo significado. Link to post Share on other sites
Solution HappyHippyHippo 1,162 Posted March 31, 2019 Solution Report Share Posted March 31, 2019 esses includes estão muito manhosos ... - o M.cpp deverá incluir somente o M.h - o M.h não deve incluir nada - o main.cpp deve incluir somente o M.h depois disso o que dá ? 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
Sol 0 Posted April 14, 2019 Author Report Share Posted April 14, 2019 Em 31/03/2019 às 12:18, HappyHippyHippo disse: esses includes estão muito manhosos ... - o M.cpp deverá incluir somente o M.h - o M.h não deve incluir nada - o main.cpp deve incluir somente o M.h depois disso o que dá ? Sim na verdade estavam errados mesmo. Fiz modificações no codigo e agora estou com alguns problemas diferentes. Obrigada Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now