C++ “不断获取错误”;不是类或命名空间;或;无法在没有对象的情况下调用成员函数;

C++ “不断获取错误”;不是类或命名空间;或;无法在没有对象的情况下调用成员函数;,c++,class,methods,scope,void,C++,Class,Methods,Scope,Void,我得到了这个错误,所以我得到了这个建议去尝试一些方法。。。我经历了一次巨大的失败。这是我的代码,我不知道我做错了什么,请解释并纠正我,我想学习,而不仅仅是解决问题: #include <iostream> #include <string> #include <stdlib.h> #include <windows.h> using namespace std; class datum { public: int leto;

我得到了这个错误,所以我得到了这个建议去尝试一些方法。。。我经历了一次巨大的失败。这是我的代码,我不知道我做错了什么,请解释并纠正我,我想学习,而不仅仅是解决问题:

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

using namespace std;

class datum
{
    public:
    int leto;
    int mesec;
    int dan;
};

class racun
{
    string naslov;
    float cena; // Skupna cena na računu
    int i; // Števec
public:
    datum izdaje; //racuna

   void nastavi_izracunaj_izpisi()
    {

        izdaje.dan = rand() % 30 + 1; //Dan
        izdaje.mesec = rand() % 12 + 1; //Mesec
        izdaje.leto = rand() % 30 + 1985; //Leto
        i = rand() % 100; // Koliko računov smo imeli.
        int produkti;
        produkti = rand() % i + 200; //Koliko produktov smo imeli
        int produkt1[200]; //cena prvega produkta
        int produkt2[200]; //cena drugega produkta
        int a; //števec produktov
        a=0; //ki ga nastavimo na nič
        do
            {
                produkt1[a] = rand() % 200;
                produkt2[a] = rand() % 200;
                a=a+1;
            }while(a!=produkti);
            int b; //kateri produkt bo izpisalo
            b = rand() % 200;
            cout<<"Kupili ste:"<<produkti<<" produktov"<<endl; //izpis za produkte 
        do
            {
                cena=produkt1[b]+produkt2[b];
                i++;
            }while(i!= produkti);
            cout<<"Cena računa brez ddv je: "<<cena<<endl;

            //DDV
            float ddv = 1.12797374897;
            float cena2;
            float cenaddv;
            cena2=cena/ddv;
            cenaddv=cena+cena2;
            cout<<"Cena računa z ddv je: "<<cenaddv<<endl;

    }
};

int main()
{
    racun nekaj;
    nekaj::nastavi_izracunaj_izpisi(); //Nena dela, FAG
    system("PAUSE");
    return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
类基准
{
公众:
内莱托;
int mesec;
int dan;
};
拉昆级
{
纳斯洛夫;
浮子塞纳;//Skupna塞纳纳拉胡努
int i;//Števec
公众:
datum izdaje;//拉库纳
void nastavi_izracunaj_izpisi()
{
izdaje.dan=rand()%30+1;//dan
izdaje.mesec=rand()%12+1;//mesec
izdaje.leto=rand()%30+1985;//leto
i=rand()%100;//Koliko računov smo imeli。
int produkti;
produkti=rand()%i+200;//Koliko produktov smo imeli
int produkt1[200];//cena prvega produkta
int produkt2[200];//cena drugega produkta
int a;//števec produktov
a=0;//ki ga nastavimo na nič
做
{
produkt1[a]=rand()%200;
produkt2[a]=rand()%200;
a=a+1;
}而(a!=produkti);
int b;//kateri produkt bo izpisalo
b=rand()%200;
库特
这是调用方法或访问成员的正确方法(正如@Ben Voigt所说)


nekaj::nastavi_izracunaj_izpisi()
应该是
nekaj.nastavi_izracunaj_izpisi()
-您正在调用对象上的成员函数。
::
用于静态成员函数,前缀是类名而不是对象名。现在我的程序崩溃了……为什么呢?:我不知道-我没有仔细研究过。如果你能学会如何发现它,而不是我来解决它,这会更有用告诉你——我建议你先在代码中加入
std::cout
语句,直到你能准确地看到哪一行崩溃为止(因为前一行的输出显示了,但下一行没有显示)。如果你不能找出它为什么会在那里崩溃,请询问我们。或者,使用gdb或Visual Studio之类的交互式调试器。我现在正在查找我的代码崩溃的地方…如果我找到任何东西,我将在这里发布。哇,我发现了错误,不确定它发生的原因。它位于以下行:“int produkt1[200];//cena prvega produkta”“int produkt2[200];//cena drugega produkta“s/call a method/access a member/Euh…它编译了,但它破坏了你的控制台!?!是的,它编译了,然后当我运行它时,它破坏了我的控制台(程序),因为我使用的是控制台应用程序……这是因为:“int produkt1[200];//cena prvega produkta”,这一行有什么问题?不,不是这一行。我强烈建议您使用调试器,放置断点并逐行运行代码。如果您在linux发行版(或Windows)上的Windows、Eclipse或Netbeans上,请使用Visual studio express。请参阅我的编辑。
nekaj::nastavi_izracunaj_izpisi();
// should be
nekaj.nastavi_izracunaj_izpisi();
// Tehre an integer division by 0 on this line
produkti = rand() % i + 200;

// because this line always return 0
i = rand() % 100; // Koliko računov smo imeli.