C++類建立多個物件不共享變數
阿新 • • 發佈:2019-02-16
如題,在使用c++相同的類建立多個物件時,在類中定義的變數並沒有在多個物件中共享,而是各自獨立分配了
下面程式碼測試:
編譯器:visual studio 2013專業版
Point.h
#pragma once
class 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中都是一樣的。