01/10/2018, 10:39
Truyền tham trị trong cho hàm trong class
dai=chieudai thì cout đầu in ra một giá trị rác ( line.layChieuDai()) , khi đổi lại mới là kết quả đúng . Mọi người có thể giải thích cho em sự khác nhau giữa chúng và cách hoạt động của “double dai” .em xin cảm ơn
#include <iostream>
using namespace std;
class Line
{
public:
double chieudai;
void setChieuDai(double dai){
dai = chieudai;
}
double layChieuDai(void){
return chieudai;
}
};
int main()
{
Line line;
// thiet lap chieu dai cua line
line.setChieuDai(50.2);
cout << "Do dai cua duong la: " << line.layChieuDai() << endl;
line.chieudai = 24.7; // Dieu nay la OK: boi vi chieudai la public
cout << "Do dai cua duong la: " << line.chieudai << endl;
system("pause");
return 0;
}
Bài liên quan
Dòng này đổi ngược lại,
Bạn đang gán thằng
dai
= giá trị rác củachieudai
chứ thằngchieudai
đã có gì đâuThằng chieudai mới là thuộc tính của class
UPDATE:
Ở bài này bạn cũng bị lỗi tương tự:
à mình hiểu rồi cảm ơn bạn . trc bạn nói mình cũng tìm duoc chỗ sai , nhưng k hiểu chính xác vì sao nó lại như z .hi
vậy nếu thay vì ta cho giá trị của “dai” luôn ,ta có thể nhập số giá trị biến đó bằng cin được không bạn
Để hiểu rõ thì các biến thuộc tính bạn cho hết thành
this->chieudai
, cái nào biến tham chiếu hoặc không là thuộc tính của class sẽ không cóthis
Được bạn, nó cũng như gán giá trị.
mình thử thêm , mọi thứ vẫn như ban đầu , không biết đúng ý bạn nói không ,và bạn có thể giải thích nó dùng để làm gì không ạ .
Mình khuyên bạn nên ngừng học class, học hàm đã
Bạn hiểu hàm này như thế
1: khởi tạo một hàm ,hàm mang kiểu trả về , và truyền vào cho hàm một tham trị “a”
3:khởi tạo biến số nguên
4:num sẽ băng giá trị a ,tức giá trị mà hàm nhận được.
5:trả về giá trị của num.
=>??