2013-11-25 50 views
1

我得到這個錯誤,所以我得到這個建議嘗試方法......我有一個史詩般的失敗。這是我的代碼,我不知道我做錯了什麼,請解釋和指正,我想學習,不只是解決問題:不斷收到錯誤「不是類或名稱空間」或「不能調用成員函數沒有對象」

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

'nekaj :: nastavi_izracunaj_izpisi()'應該是'nekaj.nastavi_izracunaj_izpisi()' - 你調用一個對象的成員函數。 '::'用於靜態成員函數,類名稱而不是對象名稱作爲前綴。 –

+0

現在我的程序只是崩潰...爲什麼? :O – user3029612

+0

我不知道 - 我沒仔細看過。如果你學習如何找出答案,而不是我解決問題並告訴你 - 我建議你首先在代碼中加入'std :: cout'語句,直到你能夠確切地看到哪一行崩潰爲止(因爲從前面的行顯示,但不是下面的行)。如果你不能確定它在那裏崩潰的原因,那就問問我們。或者,使用像gdb或Visual Studio's這樣的交互式調試器。 –

回答

2
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. 
+1

s/call a method/access a member/ –

+0

我這樣做了,它只是崩潰了我的控制檯... – user3029612

+0

Euh ...編譯它,但它崩潰了你的控制檯!?! – Nil

相關問題