c++ - 不断收到错误 "is not a class or namespace"或 "cannot call member function without object"

标签 c++ class methods scope void

我遇到了这个错误,所以我得到了尝试方法的建议……我遇到了史诗般的失败。这是我的代码,我不知道我做错了什么,请解释和纠正我,我想学习,而不仅仅是解决问题:

#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;
}

最佳答案

nekaj::nastavi_izracunaj_izpisi();
// should be
nekaj.nastavi_izracunaj_izpisi();

这是调用方法的正确方法。或者访问成员(如@Ben Voigt 所说)。

// 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.

关于c++ - 不断收到错误 "is not a class or namespace"或 "cannot call member function without object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183247/

相关文章:

Java ArrayDeque 删除和轮询方法错误

c++ - 为什么在 Win32 中使用 `GetAsyncKeyState()` 时我的热键会出错?

c++ - 按字典顺序从范围中获取下一个数字(没有所有字符串化的容器)

C# 使用类作为存储空间并从不同的线程访问它们是否安全?

java - Java中什么时候进行类加载?

java - 为什么 getmethod 返回 null 即使该方法存在

c++ - 将一个变量与另一个变量相关联?

C++ lambda : how to avoid slicing a reference if captured by value

php - 何时使用静态类与实例化类

java - 如何使用线程运行类的方法