1(原創) C++可以使用Direct-Initialization的方式在Built-in Type (C/C++)#include <iostream>
 2(原創) C++可以使用Direct-Initialization的方式在Built-in Type (C/C++)
 3(原創) C++可以使用Direct-Initialization的方式在Built-in Type (C/C++)using namespace std;
 4(原創) C++可以使用Direct-Initialization的方式在Built-in Type (C/C++)
 5}


以上源代码的第7行,宣告int型别的val变量并同时指定初值为10,int val = 10,C是这样写,C#、Java也是这样写,但C++除了允许C的写法外,还另外允许第8行的int val(10)的写法,若以OO而言,Every thing is object,当然int型别的变量也是Object,所以也应该使用Object所用的Direct-initialization的方式,所以int val(10)的语法,更能显示出『宣告int型别的对象,并将10传给Constructor建立val object』的语意,或许C++背后只是使用Operator Overload的方式完成这个Syntax Sugar,但最少这种语法实现了Every thing is object的理念,不像C#的观念是将Type分成两种,一种是Built-in Type,如int,使用=的方式建立,一种是Class Type,需用Constructor的方式建立。在这方面,我觉得C++表现较好,为了兼容C,当然可用=,但也提供了用Constructor的方式建立built-in type,算是真正对OO的支持。


Reference

C++ Primer 4th P.48

相关文章:

  • 2021-07-19
  • 2021-11-28
  • 2021-08-22
  • 2021-09-20
  • 2021-11-26
  • 2021-12-08
  • 2021-12-26
  • 2021-07-04
猜你喜欢
  • 2022-01-18
  • 2022-02-19
  • 2021-10-10
  • 2021-05-17
  • 2021-12-10
  • 2021-11-02
  • 2022-02-04
相关资源
相似解决方案