标题:无效的非静态成员,,,求大神 求解
只看楼主
蓝色的blue
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2013-10-19
结帖率:54.55%
已结贴  问题点数:10 回复次数:3 
无效的非静态成员,,,求大神 求解
#include<iostream>
#include<string>
using namespace std;
struct PersonData
{
    string name;
    PersonData*child;
    PersonData*bor;
};
class FamilyTree
{
public:
    FamilyTree()
    {
        Ancestor=new PersonData;
        cout<<"请输入祖先的名字\n";
        cin>>Ancestor->name;
    }
    void CreatPerson(PersonData*person=Ancestor);
    bool Getinfo(PersonData*);
    void disPlay(PersonData*person=Ancestor);//输出全部成员信息
public:
    PersonData*Ancestor;
};
编译出现“error: invalid use of non-static data member 'FamilyTree::Ancestor'|”的错误,,不知道怎么搞的,,,
搜索更多相关主题的帖子: include person public 信息 
2014-11-22 09:46
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:8 
无法得到默认值(编译器不允许),奇怪的是你想做什么呢,使用-〉不是一样的么?
默认参数只能是由外部传来的static
void CreatPerson(PersonData*person=Ancestor);
看上去你想用person指针去操作。
但使用Ancestor->(成员)也属于同样操作
2014-11-22 10:50
peixiao
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:25
注 册:2014-11-14
得分:2 
我用VC6.0帮你编译了一下,发现吧私有成员改为static就可以了
2014-11-23 12:13
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
别用static符号,这样做会让函数静态化,而后果是编译器会以为该函数来自外部dll或者lib接口。
2014-11-23 12:57



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




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

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