1樓:匿名使用者
應該是object_1(10) 呼叫 sum(int);
object_2(10.5) 呼叫 sum(double);
因為c++在呼叫函式是會自動識別資料型別,如果你把10改為10.0,也是呼叫sum(double)了
主要看你的引數是什麼型別的,如果是整型就呼叫sum(int);
浮點型的呼叫sum(double);
2樓:匿名使用者
過載函式的呼叫是根據引數型別來區分的,
sum object-1(10)會呼叫sum(int i),因為10是int,
sum object-1(10.5)則呼叫sum(double k),
因為10.5是double。
3樓:匿名使用者
根據實際引數來決定。一個是int 一個是double;
object_1(10) 呼叫 sum(int);
object_2(10.5) 呼叫 sum(double);
**中10,5應為10.5
4樓:匿名使用者
所謂函式過載就是指同一個函式名可以對應多個函式的實現。根據帶有不同型別,不同樹木的引數,和返回值來判斷要使用哪個函式。
5樓:匿名使用者
我在vs2005下測試了一下,首先呼叫的是sum(int),但是如果把sum(int)刪除的話,sum(double)將會被呼叫
c++建構函式過載的問題?
6樓:和小敘
你那不叫重灌,叫語法錯誤。你在定義hujiaoqi類的時候已經實現建構函式的過載了,即一專個是無參的建構函式hujiaoqi() ,一個是有參的hujiaoqi(int),類的建構函式只呼叫一次,而且不管有多少個建構函式,屬只會呼叫其中一個,並且是在定義物件的時候自動呼叫的,具體是呼叫哪個根據定義物件時傳入的引數來決定。 即你上面寫的hujiaoqi h()
7樓:匿名使用者
h(i); //過載
這裡有問題麼?
c++ 建構函式和解構函式可以過載嗎
8樓:匿名使用者
建構函式可以被過載,因為建構函式可以有多個且可以帶引數。
解構函式不可以被過載,因為解構函式只能有一個,且不能帶引數。
c++中的建構函式可以被過載嗎?舉個例子?
9樓:匿名使用者
當然可以。。版
權public class test
test(string s)
public static void main (string main)}
10樓:匿名使用者
可以,也經常會過載,最常見的是無慘建構函式和有引數的建構函式,例子我就不舉了,如果沒幫助就無視吧。
c++建構函式及其過載問題
11樓:心願
看不出來有過載 第一處劃線的只是定義了建構函式。第二處劃線的是對第一處的函式體的內容寫完整
12樓:匿名使用者
你看它不帶引數的,就說明不是你過載那個
13樓:匿名使用者
當然是第一條橫線上的
c++建構函式為什麼要進行過載
14樓:匿名使用者
// 字串類string
class string
string s("b"); "b"
string s2(s); // "b"
string s3('a', 5); // "aaaaa"
15樓:匿名使用者
過載體現的是c++多型。動態繫結的。就是執行時才體現呼叫那個函式。例子見樓下
關於C 子類建構函式的過載問題
因為你的基類student裡定義了建構函式,基類的預設建構函式不能呼叫。繼承類裡也就不可能使用預設建構函式了。把你基類裡的建構函式改為有預設值的建構函式,就能解決你的問題。如下 include stdafx.h include include using namespace std class st...
什麼是建構函式?建構函式可以過載嗎?為什麼
與類名稱具有一樣名稱的成員函式是建構函式。建構函式不能有返回值,甚至不能有return語句。說明一個有返回值的建構函式是錯誤的,取建構函式的地址也是錯誤的。如果一個類有建構函式,在程式中每個該類型別的物件在使用之前由此建構函式進行初始化 有關初始化的更多資訊參見本章後面的 用特殊成員函式進行初始化 ...
如果過載建構函式this super如何使用
建構函式過載,引數個數不同,或者引數型別不同就可以了 this的話,簡單來說,你想呼叫當前類的方法或屬性的時候,就可以用 super,簡單的說,想呼叫父類的public或protected方法和屬性的時候,可以使用,這裡只能使用直接父類的,祖先類的呼叫不到。對於你的例子 class b b 引數1 ...