Я определяю макрос перед объявлением класса. Макрос вызывает функцию-член класса. Мой пример кода ниже.Вызов функций-членов класса перед объявлением класса
декларацияПример класса, реализация класса
// sample.h
#include <sstream>
#include <iostream>
using namespace std;
#define CALCULATETEMP(a, b, c) {
int d = Sample::getTempIncrement(a,b,c);
stringstream ss;
ss << d;
cout << ss.str() << endl;
}
class Sample {
public:
Sample();
int getTempIncrement(int a, int b, int c);
~Sample();
};
Sample,
//sample.cpp
#include "sample.h"
Sample::Sample() {
}
int Sample::getTempIncrement(int a, int b, int c) {
int temp = 5;
int d = (a*temp) + (b+c)*temp;
return d;
}
Sample::~Sample() {
}
Главная рутина,
//main.cpp
#include "sample.h"
int main(int argc, char* argv[]) {
int a = 1;
int b = 2;
int c = 3;
CALCULATETEMP(a, b, c);
return 0;
}
Когда я бегу main.cpp, я получаю сообщение об ошибке в sample.h в определении макроса: «Образец» не является именем класса или пространства имен.
Как я могу вызвать функцию-член класса вне области действия класса и перед объявлением класса? Я новичок в программировании, ваши отзывы помогут мне, спасибо.
Да, «струнный поток» был там наверху, спасибо. Я просто пытался использовать макросы, ничего особенного в том, что я не делаю этого с помощью функции. –
@capricorn_heitus ОК, ничего плохого в экспериментировании :) Я просто хотел указать на это, если бы это был настоящий код где-то. –
И помните, не оставляйте пробелы после «\», иначе у вас будет та же проблема. Это позволит избежать пространства, а не любых новых строк. –