无法访问类变量

时间:2013-04-06 18:04:03

标签: c++ class variables header

您好我是C ++和标题的新手,我无法弄清楚如何获取我在标题中声明的变量。

MyClass.h

#pragma once
#include <iostream>

class MyClass
{
private:
    int numberOfJellyBeans;
public:
    MyClass();
    ~MyClass();
    void GenerateJellyBeans();
}

MyClass.cpp

#include "MyClass.h"
MyClass::MyClass()
{
    //constructor
}

MyClass::~MyClass()
{
    //destructor
}
void GenerateJellyBeans()
{
    //doesnt work?
    numberOfJellyBeans = 250;

    //Also doesnt work
    MyClass::numberOfJellyBeans = 250;
}

2 个答案:

答案 0 :(得分:4)

GenerateJellyBeans()必须在MyClass的范围内,所以你必须写:

void MyClass::GenerateJellyBeans()
{

  numberOfJellyBeans = 250;
}

现在C ++知道GenerateJellyBeans()MyClass的成员,你现在可以访问你班级的变量。

如果您只是声明void GenerateJellyBeans(),则编译器无法使用this(实际上numberOfJellyBeans = 250;this->numberOfJellyBeans = 250;的简写)

答案 1 :(得分:1)

您无意中定义了一个名为GenerateJellyBeans的免费功能,该功能与MyClass::GenerateJellyBeans无关。要纠正这个:

void MyClass::GenerateJellyBeans()
     ^^^^^^^^^

现在您将能够访问numberOfJellyBeans

{
    numberOfJellyBeans = 250;
}