2014-11-05 53 views
-1

文件sys.cpp:的main.cpp | 45 |錯誤:預期主表達式前 「Int」 和 「雙重」

#include <iostream> 
#include <stdio.h> 
#include <conio.h> 
#include <string> 
#include <fstream> 

using namespace std; 

[...] 

struct kmph_in_mps 
     { 
      int kmph[4]; 
      int result[4]; 


      void kmph_erfassen() 
      { 
       for (size_t i = 0; i < 4; ++i) 
       { 
        cin >> kmph[i]; 
       } 
      } 

      void mps_erfassen(int kmph, double result) 
      { 
       result = kmph/3.6; 
      } 

      void ergebniss_ausgeben() 
      { 
       cout << endl << kmph << "Km/h sind " <<result << " Meter pro Sekunde\n"; 
      } 
     }; 

[...] 

文件main.cpp中:

#include <iostream> 
#include <stdio.h> 
#include <conio.h> 
#include "sys.cpp" 
#include <fstream> 

kmph_in_mps c; 


[...] 


void Kmph_in_mps() 
{ 
    system("cls"); 
    cout << "\nKm/h: "; 
    c.kmph_erfassen(); 
    c.mps_erfassen(int kmph, double result); 
    c.ergebniss_ausgeben(); 
    t.beenden(); 

} 

[...] 

錯誤:

Error: expected primary-expression before 「int」 
Error: expected primary-expression before 「double」 

我是一個學習C++,我現在不知道該怎麼做。 我在網上尋找答案,在這裏,但我不真的找到正確的答案。 在「in」和「double」之前我必須寫哪個主表達式? 還是我做的一切完全錯誤,像一個勝利者呢? :P

編輯: 我嘗試了返回結果,但它似乎不允許在一個void中。

我已經試過c.mps_erfassen();但它也給我一個錯誤:error:沒有匹配函數調用`kmph_in_mps :: mps_erfassen()'|

我已經嘗試了c.mps_erfassen(kmph, result);但我沒有在這個範圍內聲明它們。它們在另一個文件(sys.cpp)中聲明。 :S

回答

3
c.mps_erfassen(int kmph, double result); 
       //^^^remove int and double 

當你調用一個函數時,你不應該把這個類型放在參數前面。

+0

抱歉忘了寫信,編輯我的帖子,我也試過了,出現錯誤,可以在帖子後面看到Edit Edit:2. one。 – Sinmson 2014-11-05 19:34:06

+0

@Sinmson您需要包含正確的頭文件,以便編譯器可以找到您調用的函數。確保函數參數類型和順序匹配。 – taocp 2014-11-05 19:39:47

+0

我將它包含在#include「sys.cpp」中,你可以在file.cpp的代碼頂部看到它。 – Sinmson 2014-11-05 19:41:37

0

c.mps_erfassen(int kmph, double result); 

應該

c.mps_erfassen(kmph, result); 

設函數推斷:)

編輯的響應註釋的類型: -

您在創建結構的對象main.cpp,而定義在sys.cpp中。 main.cpp如何知道你的結構是什麼意思。

爲了更好的設計,在頭文件中放置struct聲明,如sys.h,然後在.cpp文件中定義所需的成員,比如sys.cpp(你必須包含sys.h)。然後在你的main.cpp中使用這個結構(你必須在這裏包含sys.h)。

+0

但是然後在此範圍內聲明kmph和結果werent。因爲它們在另一個文件(sys.cpp)中聲明。糾正我,如果我錯了。 – Sinmson 2014-11-05 19:36:24

+0

這就是爲什麼你會遇到問題......只是爲了測試目的,將所有從sys.cpp複製到main.cpp中 – ravi 2014-11-05 19:38:50

+0

我會嘗試,我相信這會起作用,但shell如何幫助?試了一下,我錯了,錯誤:main.cpp | 57 |錯誤:沒有匹配函數調用'kmph_in_mps :: mps_erfassen(int [4],int [4])'| appered。 – Sinmson 2014-11-05 19:42:01

相關問題