C++ 保持更改的类变量

C++ 保持更改的类变量,c++,class,C++,Class,我想知道是否有任何方法可以将更改的变量保存在类中。例如: class Numbers{ int x; Numbers(); public: void set(int y); void print(); }; void Numbers::set(int y){ x=y; } void Numbers::print(){ cout<<x<<endl; } int main(){ Numbers x; x.set(3); x.pr

我想知道是否有任何方法可以将更改的变量保存在类中。例如:

class Numbers{
  int x;

  Numbers();

public:
  void set(int y);
  void print();
};

void Numbers::set(int y){
  x=y;
}

void Numbers::print(){
  cout<<x<<endl;
}


int main(){
  Numbers x;
  x.set(3);
  x.print();

  Numbers x2;
  x2.print(); // here I want to display "3", not 0 as default

  return 0;
}
类号{
int x;
数字();
公众:
空集(int-y);
作废打印();
};
无效数字::集合(整数y){
x=y;
}
无效数字::打印(){

您必须定义变量
static

class Numbers{
    static int x;

public:
     static void set( int i ){ x = i; }
     void print(){ std::cout << x << std::endl; } // maybe this should be static
};

int Numbers::x = 0;


int main()
{
    Numbers x1, x2;
    x1.print();  // prints 0

    x1.set( 1 );
    // above is same as
    Numbers::set( 1 );

    x1.print();  // prints 1

    x2.print();  // prints 1
} 
类号{
静态int x;
公众:
静态空集(inti){x=i;}

void print(){std::cout您可以这样声明

static int myVariable = 0;
下面是一些静态变量的信息

在函数中使用static是最简单的,它只是意味着 一旦变量被初始化,它将保留在内存中 直到节目结束。你可以把它想象成 变量保持不变,直到程序运行 完全结束。例如,您可以使用静态变量来记录 仅通过包含 函数内部的行static int count=0;和count++;。因为 count是一个静态变量,行“static int count=0;”将仅 执行一次。每当调用函数时,count将具有 指定给它的最后一个值

您可以继续阅读以下内容:


首先,您的代码将不会被编译,因为您将类的默认构造函数声明为private,并且没有定义它

对于您的问题,您可以使用静态数据成员

#include <iostream>

class Numbers
{
private:
  static int x;
public:
  Numbers() {}

  void set( int y ) { x = y; }
  void print() const { std::cout << x << std::endl; }
};

int Numbers::x;

int main()
{
   Numbers x;
   x.set( 3 );
   x.print();

   Numbers x2;
   x2.print();
}
#包括
班级人数
{
私人:
静态int x;
公众:
数字(){}
空集(inty){x=y;}

void print()const{std::cout查看
static
变量,它们在类的所有实例中共享。如何在int main中定义静态变量?我知道我可以这样写:int Numbers::x=10;但在int main中如何做到这一点?