30/09/2018, 22:32

Đối tượng trong C++

Mấy bác cho em hỏi, cout mọi người nói là một đối tượng, có nghĩa là một cái biến của một lớp nào đó à? Chả lẽ lại làm cái lớp rồi khai báo biến cout trong namespace hay sao ???

Xin các bác đính chính lại suy nghĩ của em. Em cảm ơn anh rất nhiều .

Khánh Nguyễn viết 00:48 ngày 01/10/2018

Bạn nói đúng rồi đấy.

Nguyễn Tấn Khoa viết 00:46 ngày 01/10/2018

Vậy cái lớp nó để đâu vậy bạn?

Khánh Nguyễn viết 00:48 ngày 01/10/2018

Nếu bạn sử dụng Visual Studio thì khi rà chuột lên cout, bạn sẽ thấy nó có kiểu là std::ostream. Còn muốn biết lớp này ở đâu thì bạn google nhé.

Nguyễn Tấn Khoa viết 00:43 ngày 01/10/2018

Search kiểu nào đây anh

Khánh Nguyễn viết 00:43 ngày 01/10/2018

Đây em: http://lmgtfy.com/?q=std%3A%3Aostream

Nguyễn Tấn Khoa viết 00:35 ngày 01/10/2018

Thank you, pro

... viết 00:33 ngày 01/10/2018

Sau này học qua phần C++ hướng đối tượng, bạn sẽ biết cách định nghĩa lại các toán tử cho một class.

Lớp ostream định nghĩa toán tử << là liên kết với thiết bị xuất chuẩn để tạo thành 1 stream gọi là stream output, và thế là truyền dữ liệu đi thôi.

Đối tượng cout được khai báo như khai báo biến, nhưng kiểu dữ liệu là ostream:

extern ostream cout;

Từ khóa extern dùng để làm việc với chương trình có nhiều file. Trong chương tổ chức và quản lý mã nguồn sẽ có đề cập.

Sau khi khai báo như thế thì đối tượng cout sẽ dùng toán tử << như sau:

cout << .....

Ví dụ thay thế cái đối tượng cout thuộc lớp ostream bằng một cái stream tự định nghĩa.

#include <iostream>

class MyStream
{
public:
	MyStream()
	{

	}

	const MyStream& operator<<(const char *str)
	{
		puts(str);
		return *this;
	}

private:

};


int main()
{
	MyStream test;
	test << "Hello world";

	system("pause");
	return 0;
}

Như thế thì test đóng vai trò như cout.

Bài liên quan
0