您好我是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;
}
答案 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;
}