亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么沒有調用構造函數?

為什么沒有調用構造函數?

C++ C
三國紛爭 2019-07-03 10:32:24
為什么沒有調用構造函數?這段代碼不符合我的預期。#include<iostream>using namespace std;class Class{     Class()     {         cout<<"default constructor called";     }     ~Class()     {         cout<<"destrutor called";     }};int main(){         Class object();}我期望輸出‘默認構造函數調用’,但我沒有看到任何輸出。有什么問題嗎?
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

沒有。你的線路Class object();聲明了一個函數。你想寫的是Class object;

試試看。

您也可能對最煩人的解析感興趣(正如其他人所注意到的)。一個很好的例子在有效STL項目6,第33頁。(第12期印刷,2009年9月)具體而言,第35頁頂部的示例是您所做的,它解釋了為什么解析器將其作為函數聲明處理。


查看完整回答
反對 回復 2019-07-03
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

不調用構造函數

因為構造函數實際上從未被調用過。

Class object();被解釋為函數的聲明。object不使用任何參數并返回Class[按價值計算]

試一試Class object;

編輯:

正如Mike注意到的,這與您要輸入編譯器的代碼不完全相同。是構造函數/析構函數。public或者是Class結構?

然而,谷歌對于C+最令人煩惱的解析。


查看完整回答
反對 回復 2019-07-03
?
DIEA

TA貢獻1820條經驗 獲得超3個贊

你可以這樣使用它:

Class obj;//orClass *obj = new Class(/*constructor arguments*/);


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關注
  • 664 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號