标题:class中访问的问题
取消只看楼主
zfan85
Rank: 1
等 级:新手上路
帖 子:25
专家分:8
注 册:2010-8-30
结帖率:66.67%
已结贴  问题点数:10 回复次数:2 
class中访问的问题
定义PolarRe如下
#ifndef MATHLIB_H
#define MATHLIB_H

class RandGen {
private:
    static bool seed;
public:
    RandGen();
    virtual double generate() = 0;
};

class PolarRej : public RandGen {
private:
    static PolarRej* _instance;
    PolarRej(): first(true) {}
    bool first;
    double rv2;
public:
    static PolarRej* Instance();
    double generate();
};

class SinCos : public RandGen {
private:
    static SinCos* _instance;
    SinCos(): first(true) {}
    bool first;
    double rv2;
public:
    static SinCos* Instance();
    double generate();
};

class Uniform : public RandGen {
private:
    static Uniform* _instance;
    Uniform() {}
public:
    static Uniform* Instance();
    double generate();
};

class Exponential : public RandGen {
private:
    static Exponential* _instance;
    Exponential() {}
public:
    static Exponential* Instance();
    double generate();
};


double __stdcall uniform();
double __stdcall exponential();
double __stdcall normalPR();
double __stdcall normalSC();

#endif




但是在double MonteCarlo1Asset::simulate()
{
    PolarRej Normal;
    return getSpotVal()=getSpotVal()*exp((getIr()-getDiv()-0.5*getVol()*getVol())*getDt()+getVol()*sqrt(getDt())*Normal.generate());
}中 出现 cannot access private member declared in class 'PolarRej',是怎么回事,generate不是public的么?


[ 本帖最后由 zfan85 于 2010-10-15 02:00 编辑 ]
搜索更多相关主题的帖子: 访问 class 
2010-10-15 01:58
zfan85
Rank: 1
等 级:新手上路
帖 子:25
专家分:8
注 册:2010-8-30
得分:0 
那为什么这样是不可以的?
2010-10-16 12:15
zfan85
Rank: 1
等 级:新手上路
帖 子:25
专家分:8
注 册:2010-8-30
得分:0 
public:
    static PolarRej* Instance();
    double generate();  
generate()不是公共的么?
2010-10-16 13:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322942-1-1.html




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

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