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;
}
Dark.Hades viết 12:43 ngày 01/10/2018

dai = chieudai;

Dòng này đổi ngược lại,
Bạn đang gán thằng dai = giá trị rác của chieudai chứ thằng chieudai đã có gì đâu
Thằ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ự:

#include<iostream> #include<string> using namespace std; class huy{ public: void setname(string a) { a = b; } string getname(){ return b; } private: string b; }; void main() { huy xuat; xuat.setname("hoc lap trinh"); cout << xuat.getname() << endl; system("pause"); }

huydo viết 12:50 ngày 01/10/2018

à 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

huydo viết 12:48 ngày 01/10/2018

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

Dark.Hades viết 12:47 ngày 01/10/2018

Để 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

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

Được bạn, nó cũng như gán giá trị.

huydo viết 12:50 ngày 01/10/2018

Để 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

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 ạ .

Dark.Hades viết 12:47 ngày 01/10/2018

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ế

int setNum(int a)
{
   int num;
   num = a;
   return num;
}
huydo viết 12:50 ngày 01/10/2018

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.

  • mong bạn chỉ giáo
Dark.Hades viết 12:55 ngày 01/10/2018
int setNum(int a)
{
   int num;
   a = num;
   return num;
}

=>??

Bài liên quan
0