可以直接调用构造函数吗??
来源:互联网 发布:剑道 自学 知乎 编辑:程序博客网 时间:2024/05/16 01:32
当我们创建对象时,编译器总是帮我们自动调用构造函数,我们可以自己调用构造函数吗? 先看一个简单的程序,可以避免以后的编码过程中减少这种错误。
#include <stdio.h>class Test{private:int i;int j;const char* _s;public:Test(){printf("Test()\n");i=0;j=0;}Test(const char* s){printf("Test(const char* s)\n");Test();// 主动调用构造函数_s =s;}~Test(){printf("~Test()\n");}void show(){printf("i=%d,j=%d,_s=%s\n",i,j,_s);}};void run(){ // Test("hello cjl");Test t=Test("hello cjl");t.show();}int main(){run();return 0;}
在Test(const char* s)函数中,我们主动调用Test()构造函数来帮我们对Test类的私有数据成员进行初始化,但是事实上,事情并不是我们想的那样的,这个可以从运行结果来看,i,j的值并没有初始化。
分析: 在Test(const char* s)函数中,我们直接调用构造函数,编译器会为我们产生一个临时对象,来存储这个初始化的值,当我们调用这个Test(const char* s)函数结束后,编译器也会自动销毁这个临时对象,所以没有为i,j初始化成功。
0 0
- 可以直接调用构造函数吗??
- C++中构造函数居然是可以直接调用的
- C++中构造函数居然是可以直接调用的
- C++中可以在构造函数中调用另一个构造函数吗?
- 【转】C++在构造函数中可以调用另一个构造函数吗
- C++中可以在构造函数中调用另一个构造函数吗?
- C++中可以在构造函数中调用另一个构造函数吗?
- 构造函数可以调用虚函数吗?语法上通过吗?语义上可以通过吗?
- 一个构造函数可以调用另一构造函数
- 构造函数中是否可以调用虚函数
- 【#include<algorithm>】中包含的可以直接调用的函数
- 构造函数可以为虚函数吗?
- java类的构造方法可以直接调用该类中已有的方法。
- 构造函数可以被继承吗?
- 类的构造函数可以私有吗?
- 抽象类可以有构造函数吗
- abstract方法可以直接调用?
- 构造函数调用构造函数
- 工作周报013
- 十分简洁的手机浏览器 lydiabox
- Redhat 5禁止IPv6
- 社交招聘网络Linkedin的使用体验(HR招聘篇)
- hdu 4089 Activation (概率dp 手动消元)
- 可以直接调用构造函数吗??
- c语言md5加密实现
- 大数问题(三)(大数相除)
- 产品管理 VS 产品营销
- 编写简单java程序
- uva1324 - Bring Them There 网络流
- linux下怎么实现在进程中得到其他进程的信息
- java数据类型
- Netflix on Linux:如何在Linux上使用Netflix以及为什么在Linux上使用Netflix怎么就这么难