c ++:公共私有错误

时间:2013-08-23 16:53:37

标签: c++ private public

所以我遇到了这个问题。 我想从一个不同的类中得到一些变量然后是主要的,并且我已经知道它是好的 隐藏您的数据,以便它不会如此轻松地更改并使用getXXX函数来访问它。 我尝试使用私有:公开:这件事,但是当我这样做时,我得到一个错误说

错误:预期的不合格ID为'私人'

我的课程名为nr1#,名为对话框,带有变量的课程称为种族(不是黑白分明)

无论如何我调用这样的函数:(类对话框)

    above this is all the #include stuff
    dialog::dialog(int y)
    {
        race raceO;
       switch(y)
       {

    case 1: cout << "choose a class \n1     ELF = " << raceO.getStats(1.1) << endl;
break:
}

这是比赛等级

//我应该放 私人:和公众:

    include "race.h"
    include <iostream>
    include <string>

    using namespace std;



    race::race(){
    }

    int race::raceElf(){
    return 0;
    }

        int attack = 5;
        int defence = 3;
        int stamina = 6;


    int race::getStats(int x){

    if(x == 11){
      return attack;
    }
    return 0;
    }

2 个答案:

答案 0 :(得分:0)

在类声明中它应该看起来像

class myClass{
public:
myClass();
private:
double x,y,z;
}

这就是你应该如何使用public和private,否则我看不出有什么问题,请提供头文件或类声明。

答案 1 :(得分:0)

这取决于你想要如何使用你的课程。我会将所有数据成员保密。方法raceElf()getStats()应该是公开的,因为您将在对象上调用它们。如果方法仅在其他类方法中使用但在外部不使用,则它应该是私有的。如果要创建类的任何对象,则构造函数必须是公共的。

class race{
public:
    race();
    int raceElf();
    int getStats(int);
private:
    int attack;
    int defence;
    int stamina;
}

race::race(){
    attack = 5;
    defence = 3;
    stamina = 6;
}

int race::raceElf(){ return 0;  }

int race::getStats(int x){
        if(x == 11){
            return attack;
        }
        return 0;
 }