Как реализовать кусок кода в методе класса? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть кусок кода

if (a != b[i]){
 cout<<"Wrong!"<<endl;
}
else{
 cout<<"Correct!"<<endl;
 c+=1;
}

a, b, c имеют целочисленные типы данных. и я хочу реализовать этот кусок кода в методе класса

bool classname::check(int a){
 // how do i write it here?
}

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Ничто не мешает вам вставить этот код непосредственно в метод класса, но лучше всего избегать побочных эффектов ; Вы хотите изменить только переменные, определенные в методе или в списке аргументов методов, а затем использовать возвращаемое значение во внешнем контексте. Из этого правила есть множество исключений, но я думаю, что вы делаете вот что:

// caller.cpp
#include <iostream>
#include “<path_to_headers>/classname.h”

using namespace std;

const int B_LEN = 4;
int b[B_LEN] = {0,1,2,3};
int c = 0;

int main(int argc, char** argv)) {
    int a;
    cout << “set a to integer value: “;
    cin >> a;
    cout << endl;

    for (int i=0; i<B_LEN; i++) {
        if (classname::check(a,b[i])) { //pass a and b[i] as arguments since classname needs to work with them
            cout << “correct!” << endl;
            c++;
        }
        else {
            cout << “wrong!” << endl;
        }
    }

    return EXIT_SUCCESS;
}
//classname.cpp
#include “<path_to_headers>/classname.h”

bool classname::check(int a, int b) {
    return a == b;
}
0 голосов
/ 29 апреля 2020
bool classname::check(int a, int[] b, int i) {
    // how do i write it here?
    if (a != b[i]) {
        cout<<"Wrong!"<<endl;
        return false;
    }
    else {
        cout<<"Correct!"<<endl;
        c+=1;
        return true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...