我的标题中有此错误:
这里是变量的类声明和函数原型(prototype)
#ifndef ROZKLADLICZBY_H
#define ROZKLADLICZBY_H
class RozkladLiczby{
public:
RozkladLiczby(int); //konstruktor
vector<int> CzynnikiPierwsze(int); //metoda
~RozkladLiczby();
};
#endif
和类体:
#include "RozkladLiczby.h"
using namespace std;
#include <iostream>
#include <vector>
RozkladLiczby::~RozkladLiczby() //destruktor
{}
RozkladLiczby::RozkladLiczby(int n){
int* tab = new int[n+1];
int i,j;
for( i=0;i<=n;i++)
tab[i]=0; //zerujemy tablice
for( i=2;i<=n;i+=2)
tab[i]=2; //zajmujemy sie liczbami parzystymi
for(i=3; i<=n;i+=2)
for(j=i;j<=n;j+=i) //sito erastotesa
if(tab[j]==0)
tab[j]=i;
}
vector<int> RozkladLiczby::CzynnikiPierwsze(int m){
vector<int> tablica;
while(m!=1){
tablica.push_back(tab[m]);
m=m/tab[m];
}
return tablica;
}
第一块中的函数原型(prototype)有什么问题?为什么告诉 vector 不是类型?如果您能帮助我找出这一点,我将不胜感激。
最佳答案
将头文件更改为:
#ifndef ROZKLADLICZBY_H
#define ROZKLADLICZBY_H
#include <vector>
class RozkladLiczby{
public:
RozkladLiczby(int); //konstruktor
std::vector<int> CzynnikiPierwsze(int); //metoda
~RozkladLiczby();
private:
int* tab;
};
#endif