| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1503 人关注过本帖
标题:在定义类的static成员变量的时候碰到一个问题
只看楼主 加入收藏
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
在定义类的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
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:2 
前面的 int 不需要的吧
2011-04-03 21:54
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:2 
怎么样个弄法?

类和静态成员在同一个文件吗?
代码应该很短吧,满发上来看看
2011-04-03 23:06
jerry5945
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-24
收藏
得分:0 
空空空

[ 本帖最后由 jerry5945 于 2011-4-3 23:35 编辑 ]
2011-04-03 23:33
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:0 
哈哈看了半天,还以为旁边的是什么东西呢,原来是那么多分号,我喜欢

不知道是不是你语法错误

如果是的话,那好好再看看书,看看类的静态变量是如何定义的

class A
{
    static int a1;
}
int A::a1=0;
2011-04-04 01:22
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:2 
我头一次看见分号写成这样的……
这是你们项目的要求吗?
2011-04-04 10:57
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:2 
同上,顶贴

我的地盘
2011-04-04 15:45
loveminttea
Rank: 3Rank: 3
来 自:河南科技学院
等 级:论坛游侠
帖 子:95
专家分:146
注 册:2010-10-14
收藏
得分:2 
看不懂,顶上,让大家共同解决
2011-04-05 13:29
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.012389 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved