C++ 类函数未更改私有int值

C++ 类函数未更改私有int值,c++,C++,我这里有一个私有的int索引 class classname { private: int index; public: classname(); void stuff(); } 在我的构造函数中,我初始化索引=10 classname::classname { index = 10; } 但是我想在我的stuff()函数中更改它,所以我这样做了 classname::void stuff() { cout << "the curre

我这里有一个私有的int索引

class classname {

  private:
    int index;
  public:
    classname();
    void stuff();
}
在我的构造函数中,我初始化
索引=10

classname::classname {
    index = 10;
}
但是我想在我的
stuff()
函数中更改它,所以我这样做了

classname::void stuff() {
  cout << "the current index is: " << index << endl;
  index = 15;
  cout << "ending index is: " << index << endl;
}
第二次它再次返回到10,但应该返回15。 结果如下:

 the current index is: 10
 ending index is: 15
 the current index is: 10
 ending index is: 15

请帮助

尝试此修复程序:使用classname::index调用索引

因为您使用作用域解析运算符(:)访问私有成员

#包括
使用名称空间std;
类名{
私人:
整数指数;
公众:
类名();
空的东西();
};
classname::classname(){
类名::索引=10;

cout尝试此修复:使用classname::index调用索引

因为您使用作用域解析运算符(:)访问私有成员

#包括
使用名称空间std;
类名{
私人:
整数指数;
公众:
类名();
空的东西();
};
classname::classname(){
类名::索引=10;


如果你能修复你的语法错误,它可以在我的机器上运行。请发布实际的(可运行的)你写的代码。所以我在函数的开头和结尾使用cout测试它,它确实在开始时给我10,在结束时给我15,第二次调用函数时,它在开始时给我10,在结束时给我15。(很抱歉,我真的不能把整个代码放上去)问题是,如果我修复你的代码使其正常工作,然后在我的计算机上适当的位置调用cout,它会给出10、15、15。如果你不能给出完整的代码,那么我就无法帮助你,因为我无法重现你的问题。当我修复
classname::void stuff(){
成为
void classname::stuff()){
,然后将所有代码放在一个文件中,我会得到您期望的输出。与其他人一样,我的猜测是,您发布的代码不能代表您的实际代码。如果实际代码太大,请创建尽可能小的代码示例(例如,通过删除不相关的部分)这实际上显示了问题并发布了它。如果你修复了语法错误,它可以在我的机器上运行。请发布实际的(可运行的)你写的代码。所以我在函数的开头和结尾使用cout测试它,它确实在开始时给我10,在结束时给我15,第二次调用函数时,它在开始时给我10,在结束时给我15。(很抱歉,我真的不能把整个代码放上去)问题是,如果我修复你的代码使其正常工作,然后在我的计算机上适当的位置调用cout,它会给出10、15、15。如果你不能给出完整的代码,那么我就无法帮助你,因为我无法重现你的问题。当我修复
classname::void stuff(){
成为
void classname::stuff()){
,然后将所有代码放在一个文件中,我会得到您期望的输出。与其他人一样,我的猜测是,您发布的代码不能代表您的实际代码。如果实际代码太大,请创建尽可能小的代码示例(例如,通过删除不相关的部分)这实际上显示了问题,并发布了这篇文章。不,添加类标题不起作用。不过,好主意,我认为这对我来说不起作用。你能给我看看你更新的代码吗。你是否尝试过先运行我的代码?如果仍然不起作用,你可以在我重新启动项目后向我发送你的私有代码LOL,显然它开始工作了。我不知道知道那里发生了什么,可能是一个错误。我会给你正确的答案,因为我甚至没有想到这一点,如果有人遇到类似的问题,它很可能会解决问题。谢谢!不,添加类标题不起作用。好主意,但我认为这对我来说不起作用。你能给我看一下你的更新代码吗试过先运行我的代码吗?如果仍然不起作用,你可以在我重新启动项目后给我发送你的私人代码LOL,显然它开始起作用了。我不知道那里发生了什么,可能是一个bug。我会给你正确的答案,因为我甚至没有想到这一点,如果有人遇到类似的问题,它很可能会解决问题没问题,谢谢!
 the current index is: 10
 ending index is: 15
 the current index is: 10
 ending index is: 15
#include <iostream>
using namespace std;
class classname {
private:
int index;
public:
classname();

void stuff();
};
classname::classname() {

classname::index = 10;

cout<<classname::index<<endl;
}
void classname::stuff() {

cout<<"Current: "<<index<<endl;

classname::index = 15;

cout<<"ending: "<<index<<endl;
}

int main() {
classname name;
name.stuff();
name.stuff(); //do it again
return 0;
}