博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类对象加括号与不加括号
阅读量:6714 次
发布时间:2019-06-25

本文共 1409 字,大约阅读时间需要 4 分钟。

 声明一个对象,不加括号一般调用默认构造函数

15 T t1; // is obj:Default Constructor

注意:如声明一个对象,加括号,这里一般编译器把这个当成无形参的函数,返回类型为T

18 T t2(); // is function. name is t2, return T

 声明一个对象,加括号一般调用用户定义的构造函数

21 T t3(3); // is obj. Define Constructor

 

new关键字创建对象时

对于内置类型(比如int, char):加括号会初始化,不加括号不初始化.
对于自定义类型:都会调用默认构造函数,加不加括号没区别.

 

1 #include 
2 #include
3 #include
4 5 class T { 6 public: 7 T(){printf("Default Constructor!\n");}; 8 T(int a){printf("Define(%d) Constructor!\n", a);}; 9 10 ~T(){printf("Destructor!\n");};11 };12 13 int main(int argc, char *argv[])14 {15 T t1; // is obj:Default Constructor16 printf("______1st_______\n");17 18 T t2(); // is function. name is t2, return T19 printf("______2nd_______\n");20 21 T t3(3); // is obj. Define Constructor22 printf("______3th_______\n");23 24 T* t4 = new T; // is Point. DC25 printf("______4th_______\n");26 27 T* t5 = new T(); // is Point. DC28 printf("______5th_______\n");29 30 delete t4;31 delete t5;32 33 return (EXIT_SUCCESS);34 }

输出

root@ubuntu:~/Test/test/

$ a.out

Default Constructor!

______1st_______
______2nd_______
Define(3) Constructor!
______3th_______
Default Constructor!
______4th_______
Default Constructor!
______5th_______
Destructor!
Destructor!
Destructor!
Destructor!

 

转载于:https://www.cnblogs.com/sciapex/p/9372961.html

你可能感兴趣的文章
项目UML设计(团队)
查看>>
Divideing Jewels
查看>>
Oulipo (poj3461
查看>>
无法建立目录wp-content/uploads/xxxx/xx。有没有上级目录的写权限?解决办法
查看>>
poj 3037 Skiing
查看>>
BZOJ 2049 洞穴勘测
查看>>
洛谷P4169 天使玩偶 (算竞进阶习题)
查看>>
11周
查看>>
Order By操作
查看>>
东北证券——“智能报表系统”的建设经验
查看>>
十分钟理解Gradle
查看>>
Mysql复习大全(转)
查看>>
回到上次目录、历史命令查找快捷方式及执行时间显示设置、查看系统版本
查看>>
略论软件模块的加载策略
查看>>
在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP
查看>>
siege 输出结果 理解
查看>>
C语言学习趣事_20_Assert_Setjmp
查看>>
Cogs 1672. [SPOJ375 QTREE]难存的情缘 LCT,树链剖分,填坑计划
查看>>
同一个工程下使用多个.C文件的设计(模块化设计)
查看>>
java贪吃蛇
查看>>