什么时候用C ++调用构造函数?
在这里,我们将看到调用构造函数的时间。这里的构造函数是不同类型的。全局,局部,静态局部,动态。
对于全局对象,在进入主函数之前先调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
MyClass myObj; //Global object
int main() {
cout << "Inside Main";
}输出结果
Calling Constructor Inside Main
如果对象是非静态的,则当执行到达创建对象的位置时,将调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass myObj; //Local object
cout << "After creating object";
}输出结果
Inside Main Calling Constructor After creating object
当对象是局部静态对象时,仅第一次调用其构造函数,如果再次使用相同的函数,则不会受影响。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
void func() {
static MyClass myObj; //Local static object
}
int main() {
cout << "Inside Main\n";
func();
cout << "After creating object\n";
func();
cout << "After second time";
}输出结果
Inside Main Calling Constructor After creating object After second time
最后,对于动态对象,当使用new运算符创建对象时,将调用构造函数。
示例
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() {
cout << "Calling Constructor" << endl;
}
};
int main() {
cout << "Inside Main\n";
MyClass *ptr;
cout << "Declaring pointer\n";
ptr = new MyClass;
cout << "After creating dynamic object";
}输出结果
Inside Main Declaring pointer Calling Constructor After creating dynamic object
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短