**在我的主要上我不能添加一个笔记在我的新班级对象TrabalhoC++请求会员,这是非班级类型(使用班级模板时,不能在主要定义)
ass.add_nota(num);
**
我的编译出现错误。
我 “Trabalho.h” 代码:
#include <string>
#include <vector>
#include <iostream>
//#include "Enunciado.h"
//#include "Pessoa.h"
using namespace std;
class Estudante;
class Enunciado;
template <class T>
class Trabalho{
static int id_auxiliar;
string texto;
int ano;
int id;
vector<float> calif;
T* Enun;
vector<Estudante*> estudantes;
vector<Enunciado*> enunciados;
public:
Trabalho();
Trabalho(string texto, vector<Estudante*> est, T* en, int ano);
~Trabalho();
void set_texto(string texto);
string get_texto();
void add_nota(float nota);
void add_enun(Enunciado* en){Enun = en;};
int get_id(){return id;};
int get_ano() {return ano;};
void reutilizar(int id_enun);
vector<float> get_calif() {return calif;};
vector<Estudante*> get_estudantes() {return estudantes;};
Enunciado* get_enunciado() {return Enun;};
};
#endif
而我的主要代码:
int main(int argc, char const *argv[]) {
\t int n;
\t int m;
\t Pesquisa ah();
\t float num = 1.1;
\t Trabalho<Pesquisa> ass();
\t Trabalho<Pesquisa>* tass = new Trabalho<Pesquisa>();
\t ass.add_nota(num);
\t tass->add_nota(num);
#ifndef ENUNCIADO_H_
#define ENUNCIADO_H_
#include "trabalho.h"
#include "Pessoa.h"
#include <string>
using namespace std;
class Enunciado
{
\t static unsigned int id_auxiliar;
\t const unsigned int id;
\t string titulo;
\t string descricao;
\t vector<int> anos_utilizados;
\t static unsigned int max_util;
public:
\t Enunciado(string titulo, string descricao);
\t virtual ~Enunciado();
\t int get_id(){return id;};
\t void set_titulo(string titulo);
\t string get_titulo();
\t void set_descricao(string descricao);
\t string get_descricao();
\t vector<int> get_anos_utilizados();
\t void mod_max_util(int a);
};
class Pesquisa: public Enunciado{
\t vector<string> ref;
public:
\t Pesquisa(string tit, string des, vector<string> refe);
};
class Analise: public Enunciado{
vector<string> repositorios;
public:
Analise(string tit, string des, vector<string> repos);
};
class Desenvolvimento: public Enunciado{
public:
\t Desenvolvimento(string tit, string des);
};
#endif
当我创建一个新的Trabalho当我确定我喜欢的类型(pesquisa是一个类类型上的#include“Enunciado.h”两种方式。
这是出现在两个误差修改:
“描述资源路径位置类型为‘屁股’部件‘add_nota’,其是非类类型的‘Trabalho()’测试 请求。 CPP/Trabalho1/SRC线42 C/C++问题 “
和:
描述资源路径位置类型 无法解决方法'add_nota'Test.cpp/Trabalho1/src line 42语义错误
任何人都可以帮忙吗?
谢谢!
欢迎来到Stackoverflow。请发布一个MCVE示例(http://stackoverflow.com/help/mcve)。你的Trabalho.h不正确(有一个#endif没有对应的#if)。 – jpo38
你的实现在哪里?你如何编译? – jpo38
我没有发布所有代码,因为行数太多 – Azevinho