[英]Class function does not take arguments
我正在嘗試模擬一些等離子體物理,為此我決定將我的“模擬世界”創建為 class,在“World.h”文件中定義:
#ifndef _WORLD_H
#define _WORLD_H
class World{
public:
World(int _Nx, double _x0, double _xf); //Constructor prototype
int _Nx; //Number of nodes
double _dx; //Cell width
void setTime(double _dt, int _num_ts);
protected:
double _x0; //System origin
double _xf; //System ending
double _dt = 0; //time step length
int _num_ts; //number of time steps
};
#endif
class 原型的實現如下:
#include "World.h"
World::World(int Nx, double x0, double xf)
{
this->_Nx = Nx;
this->_x0 = x0;
this->_xf = xf;
this->_dx = (xf - x0)/(Nx - 1);
//std::cout << Nx;
}
void World::setTime(double dt, int num_ts)
{
this->_dt=dt;
this->_num_ts=num_ts;
}
我遇到的問題是,當我從 main 調用 function "World::setTime(/**/)" 時:
int main()
{
//Create computational system
World world(1000, 0.0, 0.1); //(Nx, x0, xm)
World::setTime(world._dx, 10000);
/*CODE*/
return 0;
}
編譯器顯示消息:
[錯誤] 在沒有 object 的情況下無法調用成員 function 'void World::setTime(double, int)'
引用作為參數給出的 'int num_ts' 的值。 問題是什么? 它指的是什么object?
我正在閱讀這篇文章:
但我無法在其中應用解決方案,因為我在 class 中寫下了一個構造函數。 謝謝您的回復!
我認為問題在於您正在調用已定義 class的成員 function 而不是object 。 為了解決這個問題,我會嘗試把:
World world(1000,0.0,0.1); //(Nx,x0,xm)
world.setTime(world._dx, 10000);
這樣,您將調用一個 object ,您已將其定義為World類型的“世界”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.