在定义类的static成员变量的时候碰到一个问题
#ifndef NANOTUBE_H_INCLUDED#define NANOTUBE_H_INCLUDED
#include<iostream>
#include<fstream>
#include<string>
#include<cmath>
#include<vector>
using namespace std ;
class NanoTube
{
private:
class Atom
{
public:
Atom() ;
double x,y,z ;
double xo,yo,zo ;
double fx,fy,fz ;
double vx,vy,vz ;
vector<int> inner_neighbor ;
vector<int> outer_neighbor[2] ;
} ;
double length ;
double ukin ;
int flag ;//flag:-1 for rotor, 0,1 for stator(left&right)
vector<Atom> nanotube ;
static int tran_period ;
static double rcut ;
static double delta_t ;
static double mass ;
public:
NanoTube(int temp_flag) ;
NanoTube(NanoTube& temp) ;
~NanoTube() ;
void initial_position_velocity(string infile_name) ;
void inner_neighborlist() ;
void set_temperature(double temp) ;
void cal_force_tersoff() ;
void cal_force_LJ(NanoTube& temp_tube) ;
void integrate(bool transient = false, double temp = 0) ;
void output_position(string filename) ;
static void outer_neighborlist(NanoTube& tube_1, NanoTube& tube_2) ;
static void input_parameter(string infile_parameter_filename) ;
//-------public static parameter-------------
static int period ;
};
static int tran_period ;
static double rcut ;
static double delta_t ;
static double mass ;
#endif // NANOTUBE_H_INCLUDED
碰到了一个问题。
我定义了一个类,分为头文件和实现文件俩文件。当我把初始化这个static变量放在头文件中的时候报错了(如上程序),而且是一些我看不懂的错误;而把初始化放在实现文件中,错误就消息了。
错误如下:
\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\locale_facets.tcc 2497(line) first defined here
想请教一下,这样的错误是什么意思,完全看不懂!
[ 本帖最后由 jerry5945 于 2011-4-3 23:34 编辑 ]