【发布时间】:2021-07-28 19:13:30
【问题描述】:
#include<iostream>
class Example{
int i=0,j=0;
public:
Example(){
std::cout<<"Default Constructor is called "<<j++<<std::endl;
}
~Example(){
std::cout<<"Destructor is Called "<<i++<<std::endl;
}
void display(){
std::cout<<"Display method called "<<std::endl;
}
};
void function(){
Example e;
e.display();
}
int main(){
function();
Example e1;
}
我正在尝试查看如何为同一类的两个对象调用构造函数和析构函数
我得到的输出是
Default Constructor is called 0
Display method is called
Destructor is called 0
Default Constructor is called 0
Destructor is called 0
为什么我的 i 和 j 变量没有递增
【问题讨论】:
-
您的变量会增加,但您不会打印新值。
-
试试
++j和++i。也许(取决于你的意图)声明它们static。 -
一旦从 post 更改为 pre increment,请注意每个对象都有自己的成员变量副本,并且两个对象的成员变量将被初始化为相同的值:零。
标签: c++ constructor destructor