new一个对象后面加括号与不加括号的区别

new一个对象后面加括号与不加括号的区别

?

加括号与不加的区别

(1)加括号
??? 1. 若括号为空,即无实参项,那么理解为调用默认构造函数;
??? 2. 若括号非空,即有实参项,可以理解为调用重载构造函数,或 复合默认构造函数。

(2)不加括号
  调用默认构造函数,或复合默认构造函数。

默认构造函数 与 复合默认构造函数的区别

默认构造函数:编译器会为每一个类默认提供一个构造函数,称之为默认构造函数。默认构造函数一般参数为空。

复合默认构造函数:一个由用户自定义的所有形式参数都赋有默认值的构造函数,称之为复合默认构造函数。

两者联系

一个类中,若一旦有一个用户自定义构造函数,那么由编译器提供的默认构造函数就不再存在。用户自定义的构造函数为默认构造函数的重载版。

默认构造函数不复存在时,用户必须为这个类再自定义一个复合默认构造函数(选所有自定义构造函数其中之一,把形式参数均赋默认值即可)。

不论自定义构造函数(即构造函数的重载版)有多少个,只允许有一个复合默认构造函数。

原文地址:https://www.cnblogs.com/lovecode3000/p/12422462.html

时间: 2024-07-29 05:55:36

new一个对象后面加括号与不加括号的区别的相关文章

函数基础重点掌握内容:创建函数、return返回单个值、return返回多个值、函数名加括号与不加括号的区别

##比较两个数大小 #有参函数!!! def compare(s,t): if s > t: print(s) else: print(t) f=compare compare(1000,30) f(1800,30) """有几个参数传几个参数,形参对应实参,一个也不能少""" ''' 2.函数名加括号与不加括号的区别: 函数名加括号与不加括号的区别: --在这个函数中,return返回的是inner, 内部其实是返回inner函数的运行结

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

onclick时间加return和不加return的区别

JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置.而该值决定了当前操作是否继续.当返回的是true时,将继续操作.当返回是false时,将中断操作.而直接执行时(不用return).将不会对window.event.returnvalue进行设置所以会默认地继续执行操作详细说明如下:例如:当在 <a href="abc.htm" onclick="return add_onclick()&quo

new对象时,类名后加括号与不加括号的区别

[1]默认构造函数 关于默认构造函数,请参见随笔<类中函数> 请看测试代码: 1 #include <iostream> 2 using namespace std; 3 4 // 空类 5 class empty 6 { 7 }; 8 9 // 一个默认构造函数,一个自定义构造函数 10 class Base 11 { 12 public: 13 Base() 14 { 15 cout << " default Base construct " &

js调用函数时加括号与不加括号的区别

函数名其实就是指向函数体的指针 不加括号, 可以认为是查看该函数的完整信息, 不加括号传参,相当于传入函数整体 加括号 表示立即调用(执行)这个函数里面的代码(花括号部分的代码) 例2: function demo(){    return 1}var a=demovar b=demo()a是demo函数,b是1

调用类时,加括号和不加括号的区别

class ListNode: def __init__(self, x): self.val = x self.next = None a = ListNodea.val = 1print(ListNode.val) # 返回 1 class ListNode2: val = 1 def __init__(self, x): self.val = x self.next = None print(ListNode2.val) # 返回 1 b = ListNode(3) # 这是在实例化对象,

闭包函数之函数加括号和不加括号的意义

import time # 闭包函数 def outer(): x = 100 def inner(): print(x) return inner fun = outer() print(fun) #函数不加括号,调用的是函数本身[function] # <function outer.<locals>.inner at 0x0000000001F151E0> time.sleep(5) fun() #函数加括号,调用的是函数的return结果. time.sleep(5) pr

关于vue ,v-on 绑定事件时,函数名加括号和不加括号的区别

作者:DDFE链接:https://www.zhihu.com/question/55753541/answer/146504270来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 从官方的文档 事件处理器 - Vue.js 中可以看出通过 `v-on` 中既可以执行一段代码.一个方法.内联 JavaScript 语句,根据不同的情况 Vue 会做不同的处理,具体可以从源码中可以看出(2.1.10版本),在编译阶段,会根据抽象HTML语法树生成代码,从 https:

typeof加括号和不加括号的区别

typeof是一个一元运算符,并不是一个函数或者语句,所以可以用括号包裹起来tostring的用法      返回该对象的字符串表示.通常, toString 方法会返回一个“以文本方式表示”此对象的字符串.结果应是一个简明但易于读懂的信息表达式.建议所有子类都重写此方法.Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例) 原文地址:https://www.cnblogs.com/zycs/p/12340947.html