01/10/2018, 12:21
Nhờ giải thích hàm tạo và hủy khi truyền tham trị vào hàm
tại sao lại có 2 hàm hủy và 1 hàm tạo
> #include <iostream>
> using namespace std;
> class Car{
> public:
> Car(){cout<<"khoitaocar ";
> }
> ~Car(){cout<<"HuyCar ";
> }
> };
> void fun(Car a){
>
> }
> int main(){
> Car x;
> fun(x);
> }
nếu hàm fun truyền vào tham chiếu &a thì lại chỉ có 1 hàm tạo và 1 hàm hủy
ai biết rõ giải thích hộ e cái
Bài liên quan
Hàm hủy gọi 2 lần thì dễ hiểu rồi, nhưng thực chất có hai hàm tạo khác nhau được gọi trong đoạn code trên.
Có 2 hàm tạo nhưng sao nó chi chay 1 lân nhỉ có rule nào k nhỉ
theo mình hiểu:
có hai đối tượng nhưng chỉ có một hàm tạo được gọi. Vì lúc đầu khi khai báo Car x; thì hàm tạo sẽ được gọi, nhưng lúc sau “fun(x);” truyền x vào hàm fun thì chỉ copy x ra một biến mới chứ không khởi tạo nó.
Có copy constructor nhé
Tức là gọi hàm tạo hai lần ???