| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1503 人关注过本帖
标题:在定义类的static成员变量的时候碰到一个问题
取消只看楼主 加入收藏
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
在定义类的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 编辑 ]
搜索更多相关主题的帖子: private include public double class 
2011-04-03 20:40
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
收藏
得分:0 
空空空

[ 本帖最后由 jerry5945 于 2011-4-3 23:35 编辑 ]
2011-04-03 23:33
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
收藏
得分:0 
回复 6楼 pangding
分号只是个人的习惯.....
2011-04-05 23:05
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
收藏
得分:0 
回复 5楼 bccn250
对呀,就是按着这个语法编的。但是那个初始化语句如果放在头文件里(像贴出来的那样)就会出现错误。如果把初始化语句放到实现文件里就没问题了!!我也很纳闷....
2011-04-05 23:07
快速回复:在定义类的static成员变量的时候碰到一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018591 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved