Может ли класс содержать пустую функцию, которую можно загрузить с помощью метода?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Может ли класс содержать пустую функцию, которую можно загрузить с помощью метода?

Сообщение Anonymous »

В настоящее время я пишу код для научных вычислений. Я хочу создать класс MHD_Model, вот так:

Код: Выделить всё

class MHD_Model{
private:
double position;
double boundary_condidtion;
double magnetic_field;
public:
// constructor, methods for setting the boundary condititon etc.
}
На данный момент двойное магнитное поле; — это число, однако мне нужно сделать его функцией положения. Я представляю это так: сначала я определяю магнитное поле, например:

Код: Выделить всё

double Bfield(double x){
return x*x;
}
а затем напишите метод под названием double MHD_Model::load_Magnetic_field(), который будет принимать функцию Bfield в качестве входных данных. Однако у меня не получается заставить это работать, и я начал подозревать, что это неправильный способ.
По образованию я не программист, а физик. Мне нужно изучить C++/другой быстрый язык программирования, так как сейчас я поступил на докторскую степень и буду иметь дело со сложными вычислениями.
Я попробовал написать функцию Bfield в обход ссылку, передачу по значению и использование константной двойной позиции внутри класса, но ничего не компилируется. Я понимаю ошибки (большинство из них типа: бинарный оператор / нельзя использовать для типов double и (double *) double). Основная проблема заключается в том, что я не знаю «правильного» способа написания такого поведения, и я не уверен, что это позволяет структурировать программу так, как я себе представлял.
Может кто-нибудь предложит что-нибудь или укажет мне на ресурс по этому поводу? Я знаю, что лучше всего было бы изучить C++, но у меня мало времени.
Кстати, мой руководитель тоже не программирует, поэтому я не могу к нему обратиться; он использует только Wolfram Mathematica.

РЕДАКТИРОВАТЬ:
Я включаю то, что До сих пор я программировал то, как я представляю, как это будет работать:
main.cpp

Код: Выделить всё

#include 
#include 
#include 
#include

#include "mhd.hpp"

using namespace std;

double b(double *x){
return 1./ &x;
}

int main(){

double q = 10.;
double x = .3;
MHDModel model;
model.set_equipartition(q);
model.set_position(x);
model.load_magnetic_field(&b);

return 0;

}
mhd.cpp

Код: Выделить всё

#include "mhd.hpp"

#include 

void MHDModel::set_equipartition(double q) {
equipartition = q;
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79282858/can-a-class-contain-a-blank-function-that-can-be-loaded-via-a-method[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»