Журнал компиляции кто-нибудь знает, как эта ошибка может появиться? - PullRequest
0 голосов
/ 29 марта 2012

Я не знаю, как и почему, и Google не был действительно полезным соседом, но кто-нибудь может сказать, почему всплывает эта ошибка и как ее можно исправить?Я перепробовал все, что мог придумать .... У меня нет идей.

часть ошибки:

**** Build of configuration Debug for project Lab3-5Mod ****

**** Internal Builder is used for build               
**** g++ -ID:\c++\Begin\Lab3-5Mod -O0 -g3 -Wall -c -fmessage-length=0 -o src\UI.o..\src\UI.cpp
 ..\src\UI.cpp: In function 'int printMenu()':
 ..\src\UI.cpp:39:15: error: expected primary-expression before 'int'
 ..\src\UI.cpp:39:24: error: expected primary-expression before 'int'
 ..\src\UI.cpp:39:39: error: expected primary-expression before 'M'
 ..\src\UI.cpp: In function 'int main()':
 ..\src\UI.cpp:75:18: error: expected primary-expression before 'M'
 Build error occurred, build is stopped
 Time consumed: 370  ms. 

Код:

#include <iostream>
#include "Structs.h"
#include "structs.cpp"
#include "controller.cpp"
#include "UI.h"

using namespace std;

int printMenu(){

int input;
input = 1;
    while (input){
        cout<<"1.  Add to current day "<<endl;
        cout<<"2.  Insert amount to day by type "<<endl;
        cout<<"3.  Remove day "<<endl;
        cout<<"4.  Remove days "<<endl;
        cout<<"5.  Remove type of expenses"<<endl;
        cout<<"6.  Replace type  at specified day"<<endl;
        cout<<"7.  Show expenses bigger than"<<endl;
        cout<<"8.  Show expenses bigger than... to day..."<<endl;
        cout<<"9.  Show expenses of specified type overall"<<endl;
        cout<<"10. Calculate sum of specified type over all"<<endl;
        cout<<"11. Show day with highest expenses"<<endl;
        cout<<"12. Show all days with specified expenses"<<endl;
        cout<<"13. Sort days by expenses increasing"<<endl;
        cout<<"14. Sort days by expenses discreasing"<<endl;
        cout<<"15. Filter type"<<endl;
        cout<<"16. Filter type starting with"<<endl;
        cout<<"---------------------------------------------"<<endl;
        cout<<"18. Undo"<<endl;
        cout<<"0.  Clear and exit!"<<endl;

        cout<<"enter option: ";
        cin>>input;

        switch(input){
        case 1:add(int cant,int tip, Array M);
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
        case 9:
        case 10:
        case 11:
        case 12:
        case 13:
        case 14:
        case 15:
        case 16:
        case 17:
        case 18:
        case 19:
        case 0:break;
        default: cout<<"Wrong input!"<<endl;break;

        }
    }

return 0;
}


int main()
{
//Main function of the program. no pre/ post condition.
Array M;
constr(M);
Array B;
constr(B);
dummyData(Array M);

printMenu();
return 0;
}

Заголовок массива:

struct Array{
    int days;
    int exp;
    int **M;
};

void constr(Array &);
void destruc(Array &);
void add(int, int, Array &);

Функция добавления контроллера:

void add(int cant,int tip, Array M){
//Adds to current day the amount to a specific type
    currDay();
    M.M[currentDay][tip] += cant;
}

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Вы не вызываете такие функции:

add(int cant,int tip, Array M);

Вам не нужно указывать типы данных:

add(cant,tip, M);

Также здесь: dummyData(Array M); -> dummyData(M);

Вы указываете типы данных только в объявлении, но не при вызове функций.

1 голос
/ 29 марта 2012
    case 1:add(int cant,int tip, Array M);

Когда вы вызываете add, вы не указываете типы фактических параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...