C++类创建多个对象不共享变量

来源:互联网 发布:张量与矩阵的乘积 编辑:程序博客网 时间:2024/06/05 10:12

如题,在使用c++相同的类创建多个对象时,在类中定义的变量并没有在多个对象中共享,而是各自独立分配了

下面代码测试:

编译器:visual studio 2013专业版

Point.h

#pragma onceclass Point{public:    int i = 0;//这里定义了变量i    Point(double=0.0,double=0.0);    ~Point();    double getI(){        return i;    }};

Point.cpp

#include "stdafx.h"#include "Point.h"#include"iostream"using namespace std;Point::Point(double,double){    i++;}Point::~Point(){    i++;}void main(){    Point p = Point(7.0);      //创建Point类对象,i++    cout << p.getI() << endl;  //i=1    p.~Point();                //析构对象p,i再次自增    cout << p.getI() << endl;  //i=2    Point p2 = Point(8.0);     //这里是关键,我再次新建对象p2,i并没有从2自增,还是从头来了    cout << p2.getI() << endl; //i=1    system("pause");}

之后我测试了i放在protected和private中都是一样的。

0 0